LINUX.ORG.RU

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


0

0

Привет.

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

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

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

s/cat/cut//

Frakhtan-teh ★★ ()

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

if grep 'substring'; then blabla; done
Или я что-то не понял.

AITap ★★★★★ ()

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

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

urxvt ★★★★★ ()
Ответ на: [bash] Проверка наличия подстроки от Frakhtan-teh

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

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

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

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

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

mky ★★★★★ ()

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

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

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

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

mky ★★★★★ ()

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

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

scaldov ★★ ()

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

if [[ $string =~ "substring" ]] ; then some_code_there fi

noname2007 ()

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

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

а по теме - man expr

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