Wenn die erste Zeile meiner Datei so aussieht
NAMES n1 n2 n3
zwischen row1 und t1 gibt es zwei Tabs, aber es sollte nur ein einziger Tab sein...die Zeile ist in einer größeren Datei immer in der ersten Zeile. Wie kann ich den Tab zwischen ROW1 und dem ersten Eintrag danach löschen, wie
NAMES n1 n2 n3
Antwort1
Verwendung von perl
:
perl -pe 's/^(\w*)\t\t/$1\t/' <your_input_file>
Fügen Sie den -i
Schalter für Inline-Ersetzen hinzu
perl -i -pe 's/^(\w*)\t\t/$1\t/' <your_input_file>
Um alle zu ersetzen \t\t
, nicht nur zwischen der 1. und 2. Spalte, verwenden Sie
perl -i -pe 's/\t\t/\t/' foo
oder um alle \t
durch eine Anzahl größer als 1 zu ersetzen
perl -i -pe 's/\t{2,}/\t/g' foo
Beispiel
$ printf "%s\t\t%s %s\n" "foo" "bar" "foobar" > foo
$ perl -i -pe 's/^(\w*)\t\t/$1\t/' foo
$ cat foo
foo bar foobar
oder mit deinem Beispiel:
$ printf "%s\t\t%s %s %s\n" "ROW1" "t1" "t2" "t3" > foo
$ perl -i -pe 's/^(\w*)\t\t/$1\t/' foo
$ cat foo
ROW1 t1 t2 t3