Mit 'sed' einen Tabulator setzen?

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.

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

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.

Das Geheimnis ist, den
Tabulator mit C-v, Tab einzugeben.

Hm, wieder was gelernt :smile:

Stefan