我试图从具有特定扩展名(.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
搜索行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