Portál AbcLinuxu, 7. prosince 2025 22:50
$ 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 ;-)
), případně s nalezeným textem dělat psí kusy, potom je Python vhodný.
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.