zgrepを実行してから複数のファイルを個別にgzipする方法は?

zgrepを実行してから複数のファイルを個別にgzipする方法は?

file1.json.gz, file2.json.gz, etc etczgrepを使用して複数のファイル()から用語を検索し、gzipを使用して出力を単一のファイルに保存する次のコードがあります。

zgrep -i 'help' /input/path/*.json.gz | gzip > /output/path/help_file.json.gz

/input/path/これはうまくいきますが、ファイルが個別に処理されるように変更できますか?つまり、file1.json.gzになりますfile1_filtered.json.gz

ありがとうございます!

答え1

はい、しかし少しスクリプトがあります。

for f in /input/path/*.json.gz
do
  zgrep -i 'help' "$f" > "/output/path/$(basename "$f" .json.gz)_filtered.json.gz"
done

ここからbasenameパスと.json.gzサフィックスを削除し、必要なものに置き換えます。

関連情報