특정 확장자를 가진 파일에서 줄 가져오기

특정 확장자를 가진 파일에서 줄 가져오기

특정 확장명(.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

관련 정보