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

如果您想获取任何匹配的行的计数,例如,eand b

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

相关内容