다음 명령을 사용하여 내 파일에서 각 이름의 고유 목록을 가져옵니다.
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