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

Последняя команда работает не так, как я ожидал


list.txt файлы, как показано ниже:
США
Россия
Japan

file_copy.txt
США Россия Россия Россия Япония
Япония Япония США США Россия
Япония Япония США США Россия
Япония Россия США США Россия

0
23.11.2016, 18:53
2 ответа

Замените последнюю строку на:

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

Вы можете определить дополнительные условия с помощью параметра -e , и wc бесполезен, grep может подсчитывать совпадения с помощью -c

1
28.01.2020, 02:47

Для данного входного файла:

a
b
c
d
e
f
g

Если вы хотите получить счет для любых совпадающих строк, скажем, e и b :

$ grep -c -e 'e' -e 'b'
2
0
28.01.2020, 02:47

Теги

Похожие вопросы