Я пробовал различные комбинации следующий: (. Ех foo bar ||| baz
)Как разбить текстовый файл по строкам на 2 текстовых файла по разделительному столбцу?
awk -F" ||| " '{$0=$1}1' source_file.txt > column1.txt
awk -F" ||| " '{$0=$1}2' source_file.txt > column2.txt
или
awk 'BEGIN {FS=" ||| ";}{print $1}' source_file.txt > column1.txt
awk 'BEGIN {FS=" ||| ";}{print $2}' source_file.txt > column2.txt
Вместо желаемого выхода, я либо получить всю строку или я получаю только первый слово (например, foo
).
Если вы хотите помочь, вот пример текстового файла:
source_file.txt
foo bar ||| baz
qux ||| quux
corge grault ||| garply waldo
fred |||
xyzzy ||| thud
А вот желаемый результат:
column1. txt
foo bar
qux
corge grault
fred
xyzzy
column2.txt
bar
quux
garply waldo
thud
Спасибо. Вы также получаете эту ошибку? 'awk: синтаксическая ошибка в исходной строке 1 context is \t {for (i = 1; i <= NF; i ++) print $ i> >>>" column "i <<<} awk: незаконный оператор в источнике строка 1' – Ryan
В моем случае нет ошибок, убедитесь, что вы используете одиночные кавычки для скрипта. – karakfa