Подсчет совпадений в одной строке Солярис - PullRequest
0 голосов
/ 23 сентября 2018

Любая команда, удобная для grep для сопоставления строки и подсчета количества вхождений строки, когда есть длинная строка, состоящая из одной строки.

"grep -i something abc.txt | wc -l" отлично работает, когда есть несколько строк, но мы не можем получить количество, если abc.txt имеет одну строку с несколькими вхождениями.

PS: Я прочитал несколько ссылок по этому вопросу, но ни одна из них не работала для меня, так как я использую Sun OS.Пожалуйста, помните о Sun OS.

Спасибо

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

Ваш grep поддерживает опцию -o?В этом случае вы можете использовать

grep -oi something abc.txt | wc -l

, когда это не сработает.попробуйте обойти, как

sed 's/something/&\n/g' abc.txt | grep -ci "something"
0 голосов
/ 24 сентября 2018

В Solaris 11 используйте /usr/gnu/bin/grep, чтобы ответы, которые вы нашли в других местах, использовали опцию -o.

0 голосов
/ 23 сентября 2018

Как насчет awk:

$ cat file
something. something else
not that's something
$ awk 'i=gsub(/something/,"&"){c+=i}END{print c}' file
3

Он считает совпадения, если он является частью более длинной строки (something.), как grep.

...