Holen Sie sich einen Tab aus einem Vektor

Holen Sie sich einen Tab aus einem Vektor

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 -iSchalter 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 \tdurch 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

verwandte Informationen