LINUX.ORG.RU

[bash] Проверка наличия подстроки

 


0

0

Привет.

Я реализовал сабж таким вот быдляцким способом: if [ `echo $string | cut -c 1-2` = substring ]; then bla-bla; done

Да, по условия задачи нам известно положение подстроки, поэтому я использовал cat. Как это можно сделать изящнее, проверять код возврата от применения к строке egrep "REGEXP"? - вроде это более ресурсоемко и некрасиво получается.

> egrep "REGEXP"? - вроде это более ресурсоемко и некрасиво получается
По идее не должно, если там просто подстрока а негулярка.

urxvt ★★★★★
()
Ответ на: комментарий от Frakhtan-teh

str="33.312fec" ; if echo $str | grep -q -s -F 33.3 ; then echo bla ; fi

А ваш пример с if ... done я не понял, он рабочий?

>вроде это более ресурсоемко и некрасиво получается

регулярка там или нет, для одной строки не важно, основная трата времени (ресурсов) будет на fork/exec для пайпа, хоть в grep, хоть в cut.

mky ★★★★★
()

Если вам нужны башизмы, то:

str="12333fec" ; if [[ "$str" == *333* ]] ; then echo bla ; fi

А если башизмы не нужны, то тогда в заголовке пишите не bash, а sh.

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

> А ваш пример с if ... done я не понял, он рабочий?

if ... fi конечно же, я натупил.

Спасибо за семплы.

Frakhtan-teh ★★
() автор топика

if(!strstr(string, substring))
{
blabla();
}

scaldov ★★
()

чуть не кончил от названия топика. а всего-то прочитал "проверка наличия подростков"

а по теме - man expr

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