abschneiden nach letztem Zeichen einer Zeile

A

AlexNBG276

Jungspund
Hallo,

ich möchte nach dem letzten Zeichen einer Zeile [0-9 oder A-Z] mögliche Leerzeichen entfernen.

Beispiel aus:

ADASDF_ASDFASDF____ ( _ steht für mögliche Leerzeichen) soll werden
ADASDF_ASDFASDF

oder auch aus

AASDADSDF_ADFASDF9___________
AASDADSDF_ADFASDF9

Kann man das mit cut oder sed machen? - Wenn ja wie?

Vielen Dank im Voraus für Support!

Gruss
 
Code:
echo "foo  bar " | tr -d " "
foobar

Siehe

Code:
man tr
 
tr ersetzt jedes Leerzeichen. Die letzten Leerzeichen lassen sich einfach mit sed entfernen:
Code:
echo "foo   bar     baz        "|sed 's/ *$//'

In perl hätte ich "\s+" für whitespaces verwendet, aber das kennt sed afaik nicht. Und das Plus hätte man wohl escapen müssen und ist eventuell auch nicht in jeder sed-Version erhältlich, von daher...

"$" ist der "end-of-line" Anchor (==Anker). Also alle spaces vorm Ende der Zeile durch nichts ersetzen.
 
Danke!
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

um alle unsichtbaren Zeichen (Leerzeichen, Tabs) vom Ende aller Zeilen zu löschen geht auch

sed 's/[ \t]*$//'
 
Zuletzt bearbeitet:
Sed kennt Zeichenklassen, das sed-Äquivalent für \s+ ist:
Code:
[[:space:]]\+
:)

//edit: Jedenfalls mit GNU sed funktioniert das.
 

Ähnliche Themen

Hilfe für ein shell script

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

sed, awk oder cut : Zeichen innerhalb einer Zeichenkette kopieren

leerzeichen vor und nach einem STRING löschen

Teilstring extrahieren

Zurück
Oben