Portál AbcLinuxu, 14. května 2024 22:13


Dotaz: grep - soubory neobsahujici retezec

1.11.2010 12:43 Karel Lukas
grep - soubory neobsahujici retezec
Přečteno: 546×
Odpovědět | Admin
Dobry den,

jak prosim pomoci nastroje grep (nebo klidne i jineho) mohu zobrazit pouze nazvy souboru v aktualnim adresari, ktere NEOBSAHUJI urcity retezec?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.11.2010 12:50 Karel Lukas
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ted se divam, ze jsem tu otazku polozit dost spatne. Takze znova:)

Mam mnozinu souboru a nejprve si z nich udelam seznam tech, ktere neobsauji konkretni retezec (grep -L retezec *) a z techto vyfiltrovanych souboru bych potreboval potom vypsat jeste ty, ktere neobsahuji zase jiny retezec.

Jde mi o to, jak seznam souboru vyprodukovany prvnim grepem predat druhemu grepu.
1.11.2010 12:58 Mortal | skóre: 26 | blog: mortals_log
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
V pekle jsou samé diskety a ďábel je velká disketová mechanika
1.11.2010 13:09 Karel Lukas
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Pouze takto?
grep -L retezec1 * | grep -L retezec2 -
1.11.2010 13:11 Karel Lukas
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Tak asi ne, protoze pak mi tento slozeny prikaz vypise misto jmen souboru pouze:
(standard input)
1.11.2010 13:20 Karel Lukas
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Napadlo me jestli to nejde pomoci xargs, ale stale se mi ten prikaz nedari korektne sestavit...
1.11.2010 14:20 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Je tohle to, co chcete?
grep -L retezec1 * | xargs grep -L retezec2
Popř. bez xargs:
grep -L retezec2 `grep -L retezec1 *`
I am always ready to learn although I do not always like to be taught. (W. Churchill)
David Watzke avatar 1.11.2010 22:37 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
S tímhle projdou i pakárny v názvech souborů.
grep -L string1 * | tr '\n' '\0' | xargs -0 grep -L string2
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
1.11.2010 13:21 NN
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Takto:
ls /etc/ | grep -v "retezec" | grep -v "retezec"
NN
1.11.2010 16:50 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Na to se vykasli a zkus:
grep -v -e STRING1 -e STRING2
1.11.2010 17:19 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
Sorry, to neni spravne. Ty chces, aby tam nebyl ani jeden..
1.11.2010 17:21 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
vyuzij grep --regexp=<regularni vyraz> a ten si napis tak, aby ten retezec tomu vyhovoval. asi nejak takto
grep --regexp=^.*[^vyraz].*$ *
1.11.2010 17:32 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
a pote sy vystup dej do roury a projed to grepem na novy vyraz

tak ze ve finale to bude vypadat asi takto
grep --regexp=^.*[^bbb].*$ * | grep --regexp=^.*[^aaa]$
testoval jsem to na tomto vzorku
echo aaa > a
echo bbb > b
echo aaa > c
echo aaabbb > d
po vyuziti horniho grepu mi vypadne pouze soubor d:aaabbb
1.11.2010 17:51 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
grep --regexp=^.*[^vyraz].*$
je s odpuštěním nesmysl. Regulární výrazy nedokáží vyloučit podřetězec (na to je přepínač -v).
echo vyrazb | grep '--regexp=^.*[^vyraz].*$'
totiž řádek vypíše.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
1.11.2010 18:01 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
Rozbalit Rozbalit vše Re: grep - soubory neobsahujici retezec
samozrejme tazatel si musi ten regularni vyraz napsat jak jej potrebuje. s tim -v u grepu souhlasim je to taktez reseni

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.