Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Uran 28 Února 2012, 12:35:57

Název: grep kombinace parametru v, A, B
Přispěvatel: Uran 28 Února 2012, 12:35:57
Hoj potreboval bych pomoci grepu odfiltrovat nasledujici blok


Kód: [Vybrat]
ID         118931
URL        `favicon.ico' (cached)
Parent URL http://svetmightandmagic.cz/mmviii/mmviii_obchodovani.php, line 9, col 4
Real URL   http://svetmightandmagic.cz/mmviii/favicon.ico
Result     Error: 404 Not Found

zkousel jsem:

Kód: [Vybrat]
cat svetmightandmagic.cz | grep -v \`favicon -B 1 -A 3
coz nejak nefunguje. Je mozne kombinovat parametr -v a zaroven -A a -B v grepu?

Nebo by se mel na to spise pouzit sed?
Název: Re:grep kombinace parametru v, A, B
Přispěvatel: 8472 28 Února 2012, 21:03:29
takto?
Kód: [Vybrat]
cat svetmightandmagic.cz | grep -v -e ID -e URL -e "Parent URL" -e "Real URL" -e Result
Název: Re:grep kombinace parametru v, A, B
Přispěvatel: daysleeper 28 Února 2012, 21:31:28
Kód: [Vybrat]
sed '/^ID         118931/,+5d'
vymaže řádek začínající na "ID         118931" + 5 následujících.
Název: Re:grep kombinace parametru v, A, B
Přispěvatel: GdH 29 Února 2012, 18:09:06
Takže jsem nakonec sesmolil následující awk řešení:

Kód: [Vybrat]
awk '/`favicon/{i=NR};p&&(!i||NR>i+4){print p};p=$0{};END{print}'
Název: Re:grep kombinace parametru v, A, B
Přispěvatel: Uran 01 Března 2012, 06:17:28
Takže jsem nakonec sesmolil následující awk řešení:

Kód: [Vybrat]
awk '/`favicon/{i=NR};p&&(!i||NR>i+4){print p};p=$0{};END{print}'

Dekuji to je presne ono. Jsem si rikal, ze samotny grep je na to asi kratky.