Ich habe verschiedene Kombinationen der folgenden versucht: (. Ex foo bar ||| baz
)Wie kann ich eine Textdatei Zeile für Zeile in zwei Textdateien durch Trennzeichen spalten?
awk -F" ||| " '{$0=$1}1' source_file.txt > column1.txt
awk -F" ||| " '{$0=$1}2' source_file.txt > column2.txt
oder
awk 'BEGIN {FS=" ||| ";}{print $1}' source_file.txt > column1.txt
awk 'BEGIN {FS=" ||| ";}{print $2}' source_file.txt > column2.txt
Anstelle der gewünschten Ausgabe, ich entweder die gesamte Linie bekommen oder ich nur die erste Wort (z. B. foo
).
Wenn Sie hier um helfen möchten, ist eine Textbeispieldatei:
source_file.txt
foo bar ||| baz
qux ||| quux
corge grault ||| garply waldo
fred |||
xyzzy ||| thud
Und hier ist die gewünschte Ausgabe:
column1. txt
foo bar
qux
corge grault
fred
xyzzy
column2.txt
bar
quux
garply waldo
thud
Danke. Erhalten Sie diesen Fehler auch? 'awk: Syntaxfehler bei Quellzeile 1 Kontext ist \t {für (i = 1; i <= NF; i ++) drucken $ i> >>>" Spalte "i <<<} awk: illegale Anweisung an der Quelle Zeile 1' – Ryan
Keine Fehler in meinem Fall, stellen Sie sicher, dass Sie einfache Anführungszeichen für das Skript verwenden. – karakfa