URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8716
[ Назад ]

Исходное сообщение
"Подсчет количества вхождения слова."

Отправлено medved_1408 , 04-Май-10 09:51 
Доброе утро. Есть задание: вывести строки, содержащие четное количество ключевых слов. Подскажите, пожалуйста,по какому принципу можно решить задание (алгоритм или какими командами). Заранее большое спасибо.

Содержание

Сообщения в этом обсуждении
"Подсчет количества вхождения слова."
Отправлено phpcoder , 04-Май-10 09:59 
>Доброе утро. Есть задание: вывести строки, содержащие четное количество ключевых слов. Подскажите,
>пожалуйста,по какому принципу можно решить задание (алгоритм или какими командами). Заранее

- читаете файл с данными построчно (while read LINE; do ... done <input_file)
- разбиваете каждую строку на слова (sed/awk/etc)
- каким-то образом считаете сколько ключевых слов есть в строке (из задания неясно откуда брать эти ключевые слова)
- если ключевых слов нашлось четное количество (здесь if и, вероятно, test или expr), то выводите эту строку



"Подсчет количества вхождения слова."
Отправлено Andrey Mitrofanov , 04-Май-10 10:00 
>по какому принципу можно решить задание (алгоритм или какими командами).

Предлагаю вот такой _сло-о-ожый_ алгоритм: читать построчно, считать нужные слова, если число нужных слов чётное, печатать входную строку. Уф, аж упарился!

>Заранее большое спасибо.

$ cat txt
wewdwe
wdwd
wd wd wd
wd wd wd wd
wd wd wd wd wd
wd wd wd wd wdwd
$ awk 'split($0,a,"wd")%2==1' <txt
wdwd
wd wd wd wd
wd wd wd wd wdwd
$ _

Преподу -- привет.


"Подсчет количества вхождения слова."
Отправлено medved_1408 , 04-Май-10 12:45 
СПАСИБО ОООООГРОМНОЕ!!!

"Подсчет количества вхождения слова."
Отправлено GD , 05-Май-10 18:17 
>[оверквотинг удален]
>wd wd wd wd
>wd wd wd wd wd
>wd wd wd wd wdwd
>$ awk 'split($0,a,"wd")%2==1' <txt
>wdwd
>wd wd wd wd
>wd wd wd wd wdwd
>$ _
>
>Преподу -- привет.

мои аплодисменты :)


"Подсчет количества вхождения слова."
Отправлено Pahanivo , 05-Май-10 08:28 
чу! сессия близка!