特定の拡張子を持つファイルから行をインポートする

特定の拡張子を持つファイルから行をインポートする

特定の拡張子(.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 

-hgrepファイル名を印刷しないように指示し、行sumをL1|L2検索して、...、に展開します。L1L2directory{1..5}directory1directory5

答え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

関連情報