Right now I'm using another text file to store the result of one UNIX command and then using that file to run another command, like so:
tr -d "[,|.]" < text > temporary.txt
tr "[A-Z]" "[a-z]" < temporary.txt > result.txt
How do I combine these two into a single line so that I don't have to use a temporary file? The following does not work:
(tr "[A-Z]" "[a-z]" < (tr -d "[,|.]" < text)) > result.txt
I know how to use && but that still requires the use of a temporary holder file.
Possible duplicate: Bash: how to pipe each result of one command to another
Pipes are your friend:-
cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" >result.txt
Try:
tr -d "[,|.]" < text | tr "[A-Z]" "[a-z]" > result.txt
cat text | tr -d "[,|.]" | tr "[A-Z]" "[a-z]" > result.txt
Both commands do the same job.
What pipe(designated by |
) does, is just redirects output of one command to the input of another. So, for example, in foo | bar
the output of foo
gets redirected into input of bar
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With