leerzeichen vor und nach einem STRING löschen

D

Drogeron

Grünschnabel
Hallo Zusammen,

ich muss in einer Datei die LEERZEICHEN vor und nach einem STRING entfernen, aber nicht innerhalb des Strings. Die STRINGS sind mit ";" von einander getrennt.

Beispiel Zeile aus der Datei:
STRING1;STRING2"SPACE""SPACE";STRING3"SPACE"STRING3"SPACE""SPACE""SPACE";"SPACE""SPACE""SPACE"STRING4"SPACE"STRING4"SPACE"STRING4"SPACE""SPACE""SPACE"; usw.

Kann man das Problem mit linux Bordmitteln(awk, sed) lösen.
Ich benutze RHEL 6.3

Vielen Dank im Voraus !

LG
Drogeron
 
die einfachste Variante ohne allzu komplexe RegEx dürfte sein, den String in seine Teile zerlegen (";"), trailing WhiteChars wegwerfen und dann wieder zusammensetzen.
 
Habe ich befürchtet. Trotzdem vielen dank !
 
Moin,

wenn es eine feste Anzahl an Spalten ist:

Code:
root@jinx:~# echo "hallo ; welt; alles ist wunderbar; muh kuh ; fasel" | awk -F\;  '

function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s }
function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)); }

{print ("-"trim($1)"-"trim($2)"-"trim($3)"-"trim($4)"-"trim($5)"-") }
'
-hallo-welt-alles ist wunderbar-muh kuh-fasel-

die Trim-funktionen habe ich jetzt schamlos von Stackoverflow geborgt.

AWK ist :

root@jinx:~# awk --version
GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0)

mfg
HeadCrash
 
Code:
sed -e 's/^ //;s/ \+;/;/g;s/; \+/;/g'
hier der Code von "marce" getestet mit obigen Satz.
 

Ähnliche Themen

Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED

3 letzte Zeile löschen oder ab Zeile 55 Muster suchen und löschen

Letzten Tag löschen

awk: Dateiinhalt/Variableninhalt als Teil einer if-Anweisung

Zeilen löschen und ersetzen mit sed

Zurück
Oben