私はCygwinの初心者です。私が持っている場合:
cat output.txt | rm output.txt
ファイルを削除する前に結果を印刷したいのですが、Cygwinに個別に入力すると、これらのコマンドが機能しても結果が印刷されません。同様に:
grep -c 'ps' count.tmp | rm count.tmp
ファイルが削除されるgrep -c 'ps' count.tmp
前の結果を表示したいと思います。count.tmp
それらをパイプしないでください。
代わりにこれを行ってください:
cat output.txt ; rm output.txt
grep -c 'ps' count.tmp ; rm count.tmp
編集:パイプ(|
)は、あるコマンドの標準出力を受け取り、それを別のコマンドの標準入力に実行します...次のようになります。
# Get the number of lines
cat output.txt | wc -l
or
echo "Hello there" | tr -d' '
コマンドを結合するには、;
または&&
は;
コマンドを次々に実行します
echo Hi ; false; echo there
は&&
、前のコマンドがゼロのステータスコード(成功)で終了した場合にのみ、次のコマンドを実行します。
echo Hi && false && echo there
パイプされたコマンドは任意の順序で実行できるためrm
、コマンドが最初に実行されないという保証はありません。使用する
cat output.txt && rm output.txt
cat
これは、コマンドが成功した場合にのみファイルを削除します。