awk записать в файл с разделителем столбцов - PullRequest
0 голосов
/ 19 февраля 2019

Я читаю файл и записываю первые 2 столбца в выходной файл.Я хочу написать с "," в качестве разделителя столбцов

Я пытался с

awk -F"," -OFS"|" '{print $1 , $2}' filename

Выходной файл не имеет |сепаратор

Спасибо, Пратик

1 Ответ

0 голосов
/ 19 февраля 2019

Да, он не будет печататься, поскольку вы не написали его правильно.Ниже приведены 2 способа упоминания OFS в любой программе awk.

1-й способ: при использовании -v OFS="|" укажите его как переменную.

awk -F"," -v OFS="|" '{print $1,$2}' filename

2-й способ: используйтеBEGIN раздел awk для упоминания этого (что тоже рекомендуется).

awk 'BEGIN{FS=",";OFS="|"}{print $1,$2}' filename

3-й способ: согласно комментарию ghoti добавим еще 1 способ присвоения значения для OFS здесь.Мы могли бы назначить его, прежде чем упоминать имена файлов Input_file, выполнив это, мы могли бы установить различные значения OFS для различных файлов Input_file (поскольку awk может читать несколько файлов Input_file, что может помочь в подобных ситуациях).Например ->

awk '{print $1,$2}' FS="," OFS="|" Input_file1  FS=":" OFS=";" Input_file2

В приведенной выше команде для Input_file1 FS указано ,, а OFS равно |, для Input_file2 FS равно : и OFS равно ;.Спасибо ghoti, сэр, за упоминание об этом в комментариях:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...