特定の拡張子(.pvc)を持つファイルからいくつかの特定の行を取得しようとしています。これらのファイルは別のディレクトリに保存されます。その後、すべての行をtxtファイルに入れたいと思います。
例えば。
directory1/file_a.pvc
directory2/file_b.pvc
.
.
directory100/file_x.pvc
次のループを使用しようとしてもfor
機能しません。
for i in {1..5}
do
echo $i
cd /home/directory"$i"
grep -e L1 -e L2 /*.pvc > /home/all_lines.txt
done
答え1
リクエストに応じて回答を投稿:
grep -h 'L1|L2' ~/directory{1..5}/*.pvc >~/all_lines.txt
-h
grep
ファイル名を印刷しないように指示し、行sumをL1|L2
検索して、...、に展開します。L1
L2
directory{1..5}
directory1
directory5
答え2
すべて特定のディレクトリ(father_directory)内のサブディレクトリですか?
あなたは試すことができます:
find /father_directory -iname '*pvc' -exec grep -e L1 -e L2 {} \; > /home/all_lines.txt
または@Philipposが提案したように(ありがとう):
grep -r /father_directory -e L1 -e L2 --include "*.pvc" > /home/all_lines.txt