从具有特定扩展名的文件中获取行

从具有特定扩展名的文件中获取行

我试图从具有特定扩展名(.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不要打印文件名,L1|L2搜索行L1L2,并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

相关内容