Portál AbcLinuxu, 15. července 2025 12:24


Dotaz: grepovani z txt souboru

10.10.2003 23:14 jan
grepovani z txt souboru
Přečteno: 108×
Odpovědět | Admin
Dobry den, mam takovy problem v bashi. mam vstupni soubor daleho formatu:

"textcislo1" "textcislo2" "textcislo3" "textcislo4"

4 polozky na jednom radku, x radku. potreboval bych kdyz znam hodnotu cislo projit soubor, jestli nekde neni v ve sloupci 3 a jestli je nacist vsechna cisla do nejakych promenych, napr? C1, C2, C3, C4. Uvozovky ohranicuji kazdou jednotlivou polozku, ale nemely by byt soucasti vystupu. Problemem muze byt, ze hledane polozka muze byt jak ve 3. tak ve 4. tem sloupci, ale potrebuji jen tu ze 3-tiho. Nevite prosim nekdo jak na to? Zaklad:

grep "hledanecislo" soubor

mam, ale jak dal nevim :-(

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.10.2003 00:33 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše grepovani z txt souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mno, s grepem a sedem by to šlo sesmolit, s awk určitě, ale použijeme-li swiss army chainsaw neboli perl, můžeme to udělat např. (je to jeden řádek ;-) eval $(perl -nle 'm/(".*") (".*") (".*") (".*")/; print "C1=$1 C2=$2 C3=$3 C4=$4" if $3 eq "\"co_má_být_třetí_položka\""' soubor) Pozn.: Uvozovky jsou součástí výstupu, protože to je při přiřazování do proměnných shellu spíš výhoda.
11.10.2003 09:03 vaclavsteiner | skóre: 4 | Praha
Rozbalit Rozbalit vše grepovani z txt souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja bych to delal awkem....treba takhle: $ awk 'BEGIN{FS=" "}{printf "%s\n",$1}' soubor
Valoun avatar 12.10.2003 19:59 Valoun | skóre: 30 | blog: Psavec | Středočeský kraj
Rozbalit Rozbalit vše grepovani z txt souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
man cut
12.10.2003 20:26 Noxius | skóre: 13
Rozbalit Rozbalit vše grepovani z txt souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
napr: awk '{if ($3 ~ "hladany retazec") print $0}'
12.10.2003 20:29 Noxius | skóre: 13
Rozbalit Rozbalit vše grepovani z txt souboru
print $0 znamena ze vypise vsetko, obsahy jednotlivych stlpcov su v $1, $2, $3, $4, hadam to pomohlo
12.10.2003 20:51 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše grepovani z txt souboru
jj, nechal jsem se nějak unést těmi uvozovkami, ale skutečně není třeba se uchylovat k regulárním výrazům...
12.10.2003 21:08 User682 | skóre: 38 | blog: aqarium | Praha
Rozbalit Rozbalit vše grepovani z txt souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
zdravim,
sed 's/^\([^"]*"[^"]*"\)\{2\}[^"]*"\([^"]*\).*/\1/g' soubor
tohle by mohlo mozna jit. pocitam s tim, ze radek nemusi zacinat prave uvozovkou.kdyztak me opravte. diky. ve vimku by to melo fungovat. sed by mel mit stejnou syntaxi.
bye goldenfish
12.10.2003 21:11 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše grepovani z txt souboru
Mně tedy nepřipadá, že tohle načte jednotlivé položky do proměnných C1 až C4, rovná-li se něčemu třetí položka. Ale možná fakt čtu ten popis problému jinak než všichni ostatní ;-)

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.