fifiak 2020-09-26 17:45:33 +2
mam w pliku tekstowym

Marek
Hania
Marcin
jak za pomocą AWK zrobić by było to w takiej formie

Marek;Hania;Marcin ? Interesuje mnie też rozwiązanie by zrobić to na odwrót.

#devops #linux #programowanie #bash #awk
K.....3 2020-09-26 18:27:41 +5
@fifiak: albo tr:

$ cat /tmp/a
1
2
3
4
5
$ cat /tmp/a | tr '\n' ';'
1;2;3;4;5;
uketrab 2020-09-26 17:50:30 +1
@fifiak: napisalbym ale chyba wieksza przysluge ci zrobie jak powiem zebys wpisal w google
awk column to row
fifiak [OP] 2020-09-26 17:59:28 +0
awk column to row

@uketrab: @uketrab: no i dzięki :P
cofko 2020-09-26 19:44:13 +0
@fifiak: jeśli koniecznie awk, to z głowy:
awk -F '\n' '{ print $1";"$2";"$3}'

Ale to bardzo brzydkie i działa tylko dla trzech linijek :p
fifiak [OP] 2020-09-26 23:11:46 +0
@cofko coś nie dziala
Hauleth 2020-09-27 09:36:59 +0
@Kryspin013: Poza useless use of cat to to jest dobre rozwiązanie
K.....3 2020-09-27 12:17:48 +0
useless use of cat

@Hauleth: przyzwyczajenia bo tr działa jedynie na stdin
tr '\n' ';' < /tmp/a
PortowySzczur 2020-09-27 20:17:41 +0
@fifiak: masz jeszcze sed (⌐ ͡■ ͜ʖ ͡■)

sed 's/\n/;/g'
fifiak [OP] 2020-09-28 01:41:29 +0
@PortowySzczur matko tyle banalnych możliwości a człowiek mysli. Jest jakies dobre kompendium wiedzy i przykladow?
PortowySzczur 2020-09-28 01:49:56 +0
@fifiak: pewnie jest, ja osobiście lubię wykłady Missing Semestr, tak dla obycia z terminalem i podstawowymi toolami
https://youtu.be/Z56Jmr9Z34Q
fifiak [OP] 2020-09-28 20:39:42 +0
@PortowySzczur: To twoje jednak nie dziala. Znalazlem awk ORS i z tym bangla
PortowySzczur 2020-09-28 21:03:58 +0
@fifiak: racja, sed dziala glownie do operacji na pojedynczej linii, zapomnialem o tym. Do tego potrzebujesz kilku flag, operacja na otwartym sercu xD

$ cat file
Marek
Hania
Marcin
$ sed -e ':a;N;$!ba;s/\n/;/g' file
Marek;Hania;Marcin

- :a tworzy label,
- N dodaje nastepna linie do obecnej,
- $!ba nie dodaje kolejnej linii jezeli to ostatnia linia