Hallo Leute!
Habe da ein Problem mit „sed“ auf Mac OS X/Darwin.
Ich möchte mit „sed“ in einem Textfile alle „|“ (Pipe) durch eine
Tabulatorschaltung ersetzen.
Mein File vorher:
Name|Vorname|Beruf|Interessen
Jobs|Steve|wichtig|viele
Gates|Bill|megawichtig|keine
So sollte mein File nachher aussehen:
Name Vorname Beruf Interesse
Jobs Steve wichtig viele
Gates Bill megawichtig keine
Ich hätte es mit „sed ‚s/|/\t/g‘ test1.txt > test1-komma.txt“
versucht. Funzt nicht. Wer kann mir weiterhelfen?
Danke, Kurt.
Anonym
2
Ich hätte es mit „sed ‚s/|/\t/g‘ test1.txt > test1-komma.txt“
sed erkennt \t nicht.
Wie wär’s mit:
tr ‚|‘ ‚\t‘ test1-komma.txt
Stefan
Hallo Kurt,
hier noch zwei Tricks die ich kenne:
Ein ein-Zeilen-Skript mit dem sed-Befehl erstellen und \t mit richtigem ersetzen. Ausfuehren - laueft.
Die „Hardcore-Variante“:
Einfach Ascii-Hex Wert (Tab = 0x009) eintragen
sed 's/|/\x9/g' test1.txt \> test1-komma.txt
Gruss
Martin
Anonym
4
Ich hätte es mit „sed ‚s/|/\t/g‘ test1.txt > test1-komma.txt“
sed erkennt \t nicht.
Richtig, so neumodischen Kram nicht. Schnoede Tabulatoren kennt es aber.
Wie wär’s mit:
tr ‚|‘ ‚\t‘ test1-komma.txt
Geht natuerlich. Wenn es zwingend sed sein muss:
$ echo "bla|fasel|foo|bar" | sed 's%|% %g'
bla fasel foo bar
Das Geheimnis ist, den Tabulator mit C-v, Tab einzugeben.
HTH,
Gruss vom Zentrum.