파일에 여러 문자열을 grep

파일에 여러 문자열을 grep

다음 명령을 사용하여 내 파일에서 각 이름의 고유 목록을 가져옵니다.

grep -oP "name_\w*" file_copy.txt | sort |uniq > list.txt
FILE=list.txt
while read line; do
     cat file_copy.txt | grep "$line" | wc -l 
     cat file_copy.txt | grep $line | grep "name" | grep $line+1 -v | wc -l

마지막 명령이 예상한 대로 작동하지 않았습니다.


목록.txt파일은 다음과 같습니다:
미국
러시아
일본

파일복사.txt
미국 러시아 러시아 러시아 일본 일본 일본
미국 미국 러시아
일본 일본 미국 미국 러시아
일본 러시아 미국 미국 러시아

답변1

마지막 줄을 다음으로 바꾸십시오.

grep -c -e "$line" -e "name" -e $((line+1))

매개변수를 사용하여 더 많은 조건을 정의할 수 있습니다 -e. wc는 쓸모가 없으며 grep은 일치 항목을 계산할 수 있습니다.-c

답변2

특정 input파일의 경우:

a
b
c
d
e
f
g

e예 를 들어 일치하는 행의 수를 얻으려면 다음을 수행하십시오 b.

$ grep -c -e 'e' -e 'b'
2

관련 정보