PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sed loeschen bis zeilenende



Huhn Hur Tu
12.09.11, 11:15
Hallo ich habe hier eine Datei mit variablem Inhalt.
Das gemeinsame ist dass Informationen durch "|" getrennt sind.
Ich will alles nach dem 9. "|" loeschen bis Zeilenende.
Ich komme aber nicht drauf wie ich da ansetzen muss.


Gruss Stefan

buzz768
12.09.11, 13:23
sed 's/\(\([^|]\+|\)\{9\}\).*/\1/' file

aber einfacher ist:


cut -d\| -f1-9 file

Huhn Hur Tu
12.09.11, 15:01
Thx 111111

L00NIX
13.09.11, 07:27
sed 's/\(\([^|]\+|\)\{9\}\).*/\1/' file

aber einfacher ist:


cut -d\| -f1-9 file


Der sed ist ja eklig! ;)

Mit der Option -r lassen sich da zumindest beim GNU-sed ein paar \ einsparen:


sed -r -e 's/(([^|]+|){9}).*/\1/' file

Extended Regex sind zwar "extended", aber auch einfacher und lesbarer! :)

Gruß
L00NIX

Huhn Hur Tu
13.09.11, 10:08
Wo siehst du hier eine Option -r?

L00NIX
14.09.11, 19:12
Wo siehst du hier eine Option -r?

Bei meiner Fassung (rot), aber hast ja recht... nachtragend. ;)