Я использовал следующую команду для получения уникального списка каждого имени из моего файла
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
Последняя команда работает не так, как я ожидал
list.txt файлы, как показано ниже:
США
Россия
Japan
file_copy.txt
США Россия Россия Россия Япония
Япония Япония США США Россия
Япония Япония США США Россия
Япония Россия США США Россия
Замените последнюю строку на:
grep -c -e "$line" -e "name" -e $((line+1))
Вы можете определить дополнительные условия с помощью параметра -e
, и wc бесполезен, grep может подсчитывать совпадения с помощью -c
Для данного входного
файла:
a
b
c
d
e
f
g
Если вы хотите получить счет для любых совпадающих строк, скажем, e
и b
:
$ grep -c -e 'e' -e 'b'
2