Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Pavel2 15. 08. 2014, 11:39:40

Název: CSV rozdělený tabulátory
Přispěvatel: Pavel2 15. 08. 2014, 11:39:40
Ahoj,

mam CSV ktere je rozdeleno pomoci tabulatoru. V loopu se ho snazim "delimitovat", ale neuspesne.
V CSV jsou 3 sloupce. Polozku ze sloupce se snazim sosnout do promene pomoci

tmp1=`echo $line | cut -f1` nebo cut -f1 -s a ani jedno z toho nefunguje ... ale pokud udelam cut -f 1 $ile tak dostanu vsechny hodnoty v prnim sloupci. Jenomze ja potrebuju poresit kazdej radek tak ze jej rozdelim do promennych a ty pak ulozim do DB. Muze nekdo pomoct?
Název: Re:CVS rozdeleny pomoci tabu
Přispěvatel: Bla 15. 08. 2014, 11:47:40
Namátkou třeba

cut -f 2-3 input.txt > output.txt
Název: Re:CSV rozdělený tabulátory
Přispěvatel: David1234 15. 08. 2014, 12:33:49
Třeba takto:

Kód: [Vybrat]
cat file.csv | while read -r first second  bla
do
    echo "$first $second $bla"
done

Pokud by to nešlapalo, tak nastavit IFS na tabulátor.
Název: Re:CSV rozdělený tabulátory
Přispěvatel: hawran diskuse 15. 08. 2014, 14:16:31
A co takto zkusit awk, pane kolego?
 ;)
Název: Re:CSV rozdělený tabulátory
Přispěvatel: jehovista 15. 08. 2014, 14:58:39
No a neni to spis TSV, nez CSV?
Název: Re:CSV rozdělený tabulátory
Přispěvatel: Pavel2 15. 08. 2014, 17:34:47
Je to prave SDV a nevim moc jak na to v awk
Název: Re:CSV rozdělený tabulátory
Přispěvatel: noef 15. 08. 2014, 17:54:43
mozna neco podobneho tomuto?:

Kód: [Vybrat]
bash-3.1$ t="a\t1\t2\nb\t3\t4"; echo -e "$t"; echo -e "$t" | awk -F $'\t' '{print "INSERT bla bla bla \"" $1 "\" meh " $2 " boo '\''" $3 "'\''"}'
a       1       2
b       3       4
INSERT bla bla bla "a" meh 1 boo '2'
INSERT bla bla bla "b" meh 3 boo '4'