Portál AbcLinuxu, 24. července 2025 05:51
$ echo "foo" | grep "foo" &> /dev/null; echo $? 0 $ echo "bar" | grep "foo" &> /dev/null; echo $? 1Myslím, že to je přesně to, co hledáš, grep samozřejmě umí i regulární výrazy. Ale pokud chceš více možností, zkus použít Perl, nebo Python (pozor, odsazení je důležité)
#!/usr/bin/env python import re import sys ret = 1 r = re.compile(sys.argv[1]) for line in sys.stdin: if r.match(line): ret = 0 break return ret
#!/bin/bash while read do [[ "$REPLY" =~ "$1" ]] && exit done exit 1
grep -q
bude zřejmě o hodně efektivnější, takže tohle patří do kategorie zbytečných reimplementací základních utilit v shellu ;-)
grep -P
už jsi slyšel? Psí kusy jsou samozřejmě jiná kapitola, to obvykle používám Python taky.
$ [[ 'ahoj' == a* ]] && echo OK OK $ [[ 'ahoj' == "a*" ]] && echo OK || echo ''
![]()
An additional binary operator, =~, is available, with the same
precedence as == and !=. When it is used, the string to the
right of the operator is considered an extended regular expression and matched accordingly (as in regex(3)).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.