我使用以下命令从我的文件中获取每个名称的唯一列表
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
and b
:
$ grep -c -e 'e' -e 'b'
2