を介してファイル名をサブセット化し、grep
結果ファイルをcat
。for ((i=1;i<23;i+=1));
私のファイルが与えられたら、次のようにfile1.txt
grepしたいと思います。sample1
grep -w '^sample1' file1.txt > sample1_file.txt
grep -w '^sample2' file2.txt > sample2_file.txt
grep -w '^sample3' file3.txt > sample3_file.txt
....
grep -w '^sample22' file22.txt > sample22_file.txt
次に、次を接続します。
cat sample1_file.txt sample2_file.txt sample3_file.txt ... sample22_file.txt > final_output.txt
ベストアンサー1
努力する:
for i in {1..22}
do
grep -w "^sample$i" "file$i.txt"
done >final_output.txt
メモ:
{1..22}
1から22までのすべての整数を実行します。 Cに慣れていない人にとっては、おそらくCよりも直感的ですが、柔軟性は低下します。((i=1;i<23;i+=1))
^sample$i
シェルが拡張されるように、式を一重引用符ではなく二重引用符の中に入れることが重要です$i
。必要なものであれば、
final_output.txt
中間ファイルを作成する必要はありません。final_output.txt
ステートメントの後にリダイレクトを配置するのが効率的であることに注意してくださいdone
。このようにして、シェルはこのファイルを一度だけ開いて閉じることができます。