14

たくさんのファイルを作成しようとしていますが、そのうちのいくつかは存在しない可能性があります。それらのいくつかが存在しなくても大丈夫ですが、可能であれば、この場合に猫がエラーを返さないようにします。これが私の電話です:

zcat *_max.rpt.gz *_min.rpt.gz | gzip > temp.rpt.gz

このコマンドを実行すると、* _ max.rpt.gzに一致するファイルの束が存在するか、*_min.rpt.gzが存在します。もう一方が存在しない場合、私は気にしません。私は自分ができることを連結したいだけです。しかし、残りのコードの実行を停止するエラーメッセージが表示されます。

私にできることはありますか?ありがとう。

4

5 に答える 5

29

stderrを/dev/nullにリダイレクトするだけです。

cat file1 file2 .... 2>/dev/null

1つ以上のファイルが存在しない場合、catは/ dev / nullに移動するエラーを出し、目的の結果が得られます。

于 2012-10-10T22:02:07.580 に答える
7

[ -f file.txt ] && cat file.txt

于 2020-09-11T17:10:39.213 に答える
6
grep -hs ^ file1 file2 ....

catとは異なり、戻りコードはゼロです。オプション-hはファイル名の印刷を無効にし、オプション-sはファイルエラーの報告を無効にします。^はすべての行に一致します。

于 2018-12-17T15:19:58.737 に答える
1
zcat `ls *.rpt.gz | grep -E '_(max|min)\.rpt\.gz$'` | gzip > temp.rpt.gz

ちょっとしたハックですが、シェルもそうです:-P

于 2012-10-10T22:03:16.413 に答える
0

コマンドに追加|| Trueして、終了コードを無音にすることができます。

于 2020-08-27T09:55:49.317 に答える