Sziasztok!
Adott egy aaaa;bbb;ccc formátumú csv fájl. Hogyan lehet az oszlopokat átrendezni?
A cut sajnos nem rendez át. :( Bash megoldás kéne.
- 1560 megtekintés
Hozzászólások
cat fájlneve | awk 'BEGIN { FS = ";" } ; { print $3";"$2";"$1 }'
- A hozzászóláshoz be kell jelentkezni
Hmm... Nem igazán csinálja. A $3 lemarad..
kimenet:
;bbb;aaa
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
$ echo "1;2;3;4;5" > foobar
$ awk -F";" '{print $5";"$4";"$3";"$2";"$1}' foobar
5;4;3;2;1
t
- A hozzászóláshoz be kell jelentkezni
awk -F":" '{print $1";"$3";"$5}' /etc/passwd
t
- A hozzászóláshoz be kell jelentkezni
Érdekes dolog ez: awk -F";" '{print $1";"$2";"$3}' visszadja az eredeti sorrendet, de ha $3 $1 $2 sorrendet írok be, a $3 nem jelenik meg.
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
\r van a sorok vegen, gondolom win-es file
awknal maradva pl:
awk -F';' '{gsub("\r", ""); print $3";"$2";"$1}' file
- A hozzászóláshoz be kell jelentkezni
Igen, rájöttem. Köszi mindenkinek!
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
vagy akkor mar inkabb:
dos2unix filename
- A hozzászóláshoz be kell jelentkezni
Mégis inkább csola példája. A te esetedben két programot kell elindítani, az övében egyet. Gazdaságosabban bánik az erőforrásokkal. ;-)
Egyszeri futtatásnál persze tökmindegy, de ha sűrűn használt scriptet alkotsz, akkor már érdemes ilyen apróságokra is odafigyelni!
Ave, Saabi.
- A hozzászóláshoz be kell jelentkezni
Nem lehet, hogy DOS-os sorvége van? Akkor ugyanis ott van a $3 után a CR, vagyis a $1 írását a sor elejétől folytatja.
hint: echo -e 'e\raz'
szaszi
szerk: így marad le, aki nem frissítettem az oldalt
- A hozzászóláshoz be kell jelentkezni