LINUX.ORG.RU

Ответ на: комментарий от Die-Hard

работает. Только я пробелы убрал. Эх... пора бы мне уже sed изучить, но всё как-то руки не доходят или лень...

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

> Только я пробелы убрал.

Осторожнее с пробелами, например:

$echo "test ыыtestss test" |sed 's/test /test \n/g'|grep -c test
2

$echo "test ыыtestss test" |sed 's/test/test\n/g'|grep -c test
3

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

ну мне как раз последний вариант нужен, т.к. отладочный вывод при исключении промежуточного кода имеет тенденцию сваливаться в неудобоваримую кашу

seiken ★★★★★
() автор топика
Ответ на: комментарий от Die-Hard

> Не канает: $echo "test ыыtestss test" | awk -F'test' 'NF > 0 { coun+=NF-1 } END { print coun }' 3

а подробнее? я вижу три слова test:) Или слово должно быть разделено пробелами?

Тогда:

awk -F'(^|[[:space:]])test($|[[:space:]])' 'NF > 0 { coun+=NF-1 } END { print coun }'

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

вообще, если нужно считать именно слова, то имхо так лучше:

tr -c [:alpha:] \\n | grep '^test$' | wc -l

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> Или слово должно быть разделено пробелами?

Ответ знает только топикстартер! :-)

Думаю, он во всем разобрался уже...

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.