Hier hat cut eine bessere Leistung als sed, aber ich habe Probleme bei der Verwendung von utf-8-codierten Zeichen.
PSchwede
Um den Kommentar von @ PSchwede näher zu erläutern, cutbehandelt GNU alle Zeichen als Bytes, auch wenn Sie die -cOption verwenden. GNU cutunterstützt keine Multi-Byte-Zeichen und wird auf absehbare Zeit wahrscheinlich keine Multi-Byte-Zeichen unterstützen
BSD sed akzeptiert nicht die höchstens gebundene ( {,5}), dies ist GNU-spezifisch. Ein Ausdruck, der auf beiden funktioniert, wäresed 's/^.\{5\}//' file.dat
Antworten:
sed 's/^.....//'
meint
Ersetzen Sie ("s", ersetzen Sie) den Zeilenanfang und dann 5 Zeichen (".") durch nichts .
Es gibt kompaktere oder flexiblere Möglichkeiten, dies mit sed oder cut zu schreiben.
quelle
sed 's/.$//'
cut
besser istVerwendung
cut
:Dies druckt jede Zeile der Eingabe ab Spalte 6 (die erste Spalte ist 1).
quelle
cut
behandelt GNU alle Zeichen als Bytes, auch wenn Sie die-c
Option verwenden. GNUcut
unterstützt keine Multi-Byte-Zeichen und wird auf absehbare Zeit wahrscheinlich keine Multi-Byte-Zeichen unterstützenquelle
{,5}
), dies ist GNU-spezifisch. Ein Ausdruck, der auf beiden funktioniert, wäresed 's/^.\{5\}//' file.dat
quelle
sed 's/^.\{,5\}//' file.dat
arbeitete wie ein Zauber für michquelle