Portál AbcLinuxu, 26. dubna 2024 15:44


Dotaz: Vyhledávání čísel

1.5.2013 14:24 Martin
Vyhledávání čísel
Přečteno: 220×
Odpovědět | Admin
ahoj, chci se zeptat, jakým způsobem se pomocí grepu vyhledávají čísla v nějakém souboru. Mám tu seznam asi 100 čísel a potřeboval bych vyhledat jen jedno konkrétní "123" ale když ho zadá, vyhledá to všechny řádky kde je 1 nebo 2 nebo 3. Jak bych to tedy měl napsat? Díky. :-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.5.2013 14:43 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Vyhledávání čísel
Odpovědět | | Sbalit | Link | Blokovat | Admin
grep -w "123" soubor.txt
1.5.2013 14:53 Martin
Rozbalit Rozbalit vše Re: Vyhledávání čísel
Jo a ještě jeden dotaz. Je možný z grepu nějak vracet hodnotu 1/0 - pravda/nepravda ? Zkusil sem to takhle [ -n `ps -e | grep -w $1` ] , ale to nefunguje.
1.5.2013 16:21 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vyhledávání čísel
Návratová hodnota každého příkazu je v proměnné $?.
When your hammer is C++, everything begins to look like a thumb.
1.5.2013 16:32 Martin
Rozbalit Rozbalit vše Re: Vyhledávání čísel
ok, diky. Vyresil sem to takhle: retezec=`ps -e | grep -w $1` if [ $? -eq 0 ];
Jendа avatar 1.5.2013 17:02 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vyhledávání čísel
if ps -e | grep -qw $1; then
  aa
fi
2.5.2013 07:59 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Vyhledávání čísel

Řekl bych, že to, co opravdu chcete, je spíš "ps --pid $1" nebo rovnou (na Linuxu)

  if [ -d /proc/"$1" ]; then ...

Samozřejmě je ale potřeba mít na paměti, že i když otestujete existenci procesu s daným PID, může vám skončit mezi testem a čímkoli, co provedete hned po něm. Také nemáte jak ověřit, že je to pořád ten, který hledáte (tj. že mezitím neskončil a nebyl spuštěn nový, který dostal stejný PID).

1.5.2013 16:24 ET
Rozbalit Rozbalit vše Re: Vyhledávání čísel
nestacili by navratovy hodnoty - viz man grep

Normally, exit status is 0 if selected lines are found and 1 otherwise. But the exit status is 2 if an error occurred, unless the -q or --quiet or --silent option is used and a selected line is found.

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.