2016-06-26 3 views
1

Мне нужно найти строку «Linux» на веб-странице, сначала в случае с регистром, сенсон в случае без учета регистра.Как найти слово в Shell Script (Bash)?

Ну, мой поиск будет http://www.tldp.org/LDP/intro-linux/html/intro-linux.html

Я сделал сильфона код, но он не возвращается каждые слова «Linux».

echo Linux: $(grep -wc "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html) 

Например, мой код возврата 405 слов, но есть 447.

Как это сделать?

+1

Вы спрашивали вчера об этом в вопросе это сейчас (в настоящее время) дубликатом ([Как использовать 'echo' с' grep' в сценарии оболочки Unix] (https://stackoverflow.com/questions/38024647/how-use-echo-with-grep-in-a-unix-shell-script)). Вам сказали, как это сделать между комментариями и ответами, и почему. –

+0

Thats ok, Если этот quetion лучше, я могу удалить этот вопрос? –

ответ

3

grep подсчитывает соответствующие линии, поэтому линии с несколькими совпадениями подсчитываются только один раз.

echo "Linux Linux Linux" | grep -woc Linux 
1 

Вы можете использовать -o флаг, чтобы генерировать одну строку за матч, то wc -l сосчитать

echo "Linux Linux Linux" | grep -o Linux | wc -l 
3 
+0

Это правильно и, в основном, ответ, который был предоставлен ФП вчера на его другой вопрос - тот, который сейчас является дубликатом. –

+0

См. Править, забыл добавить флаг wc, перетащить страницу в grep с помощью cat или в качестве аргумента grep – xvan

+0

Замечательно, большое спасибо! –