0

誰かがこのエラーで私を助けてくれるかどうか知りたいです:

wc: Files/Unused-CMA_host.txt: そのようなファイルやディレクトリはありません

ファイルが存在しないため、出力を /dev/null にリダイレクトしたい

他のケースでは機能しているこの文を試してみまし> /dev/null 2>&1たが、ここでは機能しません:

wc -l Files/Unused-CMA_host.txt | awk '{print $1}' > /dev/null 2>&1

誰かが理由を知っていますか?

ありがとう。

4

1 に答える 1

5

リダイレクトは、パイプライン全体ではなく、パイプラインの個々のコンポーネントに適用されます。あなたの例では、awkの標準出力のみをリダイレクトします。パイプライン全体の標準エラー出力と標準出力をリダイレクトするには、次のようなコマンド グループが必要です。

{ wc -l Files/Unused-CMA_host.txt | awk '{print $1}' ; } > /dev/null 2>&1

ただし、ファイルが存在しない場合、標準出力はありません。おそらく、標準エラーをリダイレクトしてエラーメッセージを抑制したいですか? 次に、単に使用できます

wc -l Files/Unused-CMA_host.txt 2> /dev/null | awk '{print $1}'

存在しないファイルの場合awk、空のストリームから読み取るだけで何もしません。

于 2013-03-12T12:58:30.450 に答える