2

私はCygwinの初心者です。私が持っている場合:

cat output.txt | rm output.txt

ファイルを削除する前に結果を印刷したいのですが、Cygwinに個別に入力すると、これらのコマンドが機能しても結果が印刷されません。同様に:

grep -c 'ps' count.tmp | rm count.tmp

ファイルが削除されるgrep -c 'ps' count.tmp前の結果を表示したいと思います。count.tmp

4

2 に答える 2

3

それらをパイプしないでください。

代わりにこれを行ってください:

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
于 2012-09-18T00:37:50.263 に答える
0

パイプされたコマンドは任意の順序で実行できるためrm、コマンドが最初に実行されないという保証はありません。使用する

cat output.txt && rm output.txt

catこれは、コマンドが成功した場合にのみファイルを削除します。

于 2012-09-18T00:43:59.957 に答える