Portál AbcLinuxu, 12. května 2025 08:51

Dotaz: grep - jak zabránit přesunu do roury?

hajma avatar 5.1.2007 16:26 hajma | skóre: 27 | blog: hajma | Říčany
grep - jak zabránit přesunu do roury?
Přečteno: 114×
Odpovědět | Admin
DD,
manuál grepu říká:
"Dva regulární výrazy lze složit pevným operátorem |; výsledný regulární výraz odpovídá řetězci, který se shoduje s kterýmkoliv z uvedených regulárních výrazů."
takže čistě teoreticky by měl zápis
grep ahoj|nazdar dopis
vypsat řádky, které obsahují ahoj nebo nazdar... nicméně bash to | prostě chápe jako přesměrování do roury. Jak na to?
21 promarněných znaků
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.1.2007 16:28 cronin | skóre: 49
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
Odpovědět | | Sbalit | Link | Blokovat | Admin
grep -e ahoj -e nazdar dopis
5.1.2007 16:29 cronin | skóre: 49
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
Este upozornenie: nefunguje v Solarisovom grep-e.
5.1.2007 16:28 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
Odpovědět | | Sbalit | Link | Blokovat | Admin
bash(1), hledejte heslo "QUOTING"
5.1.2007 16:38 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
A nebo rychlá odpověď: většinou se používají uvozovky či apostrofy.
Josef Kufner avatar 5.1.2007 16:39 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
Nebo backslash.
Hello world ! Segmentation fault (core dumped)
hajma avatar 5.1.2007 17:20 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
grep ahoj\|nazdar dopis
grep ahoj'|'nazdar dopis
grep ahoj"|"nazdar dopis


nic z toho nefunguje
21 promarněných znaků
5.1.2007 17:24 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
[ivok@zero ~]$  echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" |  grep -E aa\|ab
aa
ab
[ivok@zero ~]$  echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" |  grep -E 'aa|ab'
aa
ab
[ivok@zero ~]$  echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" |  grep -E "aa|ab"
aa
ab
5.1.2007 17:34 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
Já čtu:
       In basic regular expressions the metacharacters ?, +, {, |, (, and  )  lose
       their special meaning; instead use the backslashed versions \?, \+, \{, \|,
       \(, and \).
Takže buďto grep 'ahoj\|nazdar' dopis nebo egrep 'ahoj|nazdar' dopis.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
Josef Kufner avatar 5.1.2007 17:37 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
nebo grep ahoj\\\|nazdar

Doporučuju si s pomocí echo vyzkoušet, co a jak to vlastně předá tomu kterému programu.
Hello world ! Segmentation fault (core dumped)
hajma avatar 5.1.2007 17:45 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
toto je ono, díky!
21 promarněných znaků
5.1.2007 17:43 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: grep - jak zabránit přesunu do roury?
Pozor na to, že existují dvě hlavní syntaxe regulárních výrazu. Jedna z nich, zvaná grep, vyžaduje před kůlem zpětné lomítko. Proto osobně vždy dávám regulární výrazy do apostrofů, je to nejjednodušší:
grep 'if\|then\|else' *.sh
Ostatní varianty jsou komplikovanější.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.