String trim mit `awk`, linkes und rechtes Ende... [Gelöst]

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
jmar83
Beiträge: 962
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

String trim mit `awk`, linkes und rechtes Ende... [Gelöst]

Beitrag von jmar83 » 13.01.2020 09:33:25

Da kann man wieder mal googlen wie man will und findet nix brauchbares... z.B. https://stackoverflow.com/questions/998 ... ble-in-awk...

Was ich braucht ist ein SIMPLES trim(...), welches Leerzeichen am Anfang und Ende entfernt.

Also:

Code: Alles auswählen

STR=" ABC ";
STR=$(awk ... $STR ... );   # Irgendwas mit `awk`....??
echo $STR;  # Hier kommt der Text `ABC` raus, und NICHT ` ABC ` !!!
...man findet irgendwie alles mögliche im Netz, nur nicht so einfaches Zeugs wie mein Beispiel?!
Zuletzt geändert von Meillo am 13.01.2020 18:28:19, insgesamt 2-mal geändert.
Grund: Meillo: Titel korrigiert. Es geht um awk, nicht um AKWs ;-)
Freundliche Grüsse, Jan

jmar83
Beiträge: 962
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Re: String trim mit `akw`, linkes und rechtes Ende...

Beitrag von jmar83 » 13.01.2020 09:44:45

Code: Alles auswählen

IP=$(ifconfig $(/sbin/ifconfig eth0 | awk -F\: '/^e/ {print $1;}' ) | awk '/inet/ {print $2; exit;}');
IP=$(echo $IP | awk -F\, '{gsub(/[ \t]+$/, "", $IP); print $IP;}');

Frage: Warum kann ich bei der oberen Zeiel mit $1 sowie $2 arbeiten, bei der unteren muss ich mich wieder auf die Eingangsvariable $IP beziehen?

Und: Scheint nicht ganz zu funktionieren, aus " x 1.1.1.1" macht es zwar "x 1.1.1.1"... links trimmt es korrekt, aber in der Mitte sollte es das nicht wirklich tun...


Vielen Dank für die Feedbacks.
Freundliche Grüsse, Jan

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Re: String trim mit `akw`, linkes und rechtes Ende...

Beitrag von mistersixt » 13.01.2020 10:09:23

Falls auch sed geht:

http://sed.sourceforge.net/sed1line.txt

Siehe "delete BOTH leading and trailing whitespace from each line":

Code: Alles auswählen

sed 's/^[ \t]*//;s/[ \t]*$//'
Gruss, mistersixt.
--
System: Debian Bookworm, 6.5.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 4.0 Ghz., Radeon RX 5700 XT, 16 GB Ram, XFCE

jmar83
Beiträge: 962
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Re: String trim mit `akw`, linkes und rechtes Ende...

Beitrag von jmar83 » 13.01.2020 10:18:36

Vielen Dank!!! :-)
Freundliche Grüsse, Jan

Antworten