Проблема добавления заголовков в CSV-файл - PullRequest
0 голосов
/ 05 февраля 2020

Мне нужно скопировать заголовки из файла CSV в новый файл CSV.

input.csv content:

col1;col2;col3

Для этого я использовал следующую команду:

head -n 1 input.csv > output.csv

и также попытался:

awk -F\; 'NR==1 {print; exit}' input.csv > output.csv

Результат тот же. При этом заголовки копируются в файл output.csv, но проблема заключается в том, что все они копируются в одну и ту же ячейку вместо создания отдельных столбцов.

ячейка A1 содержимого output.csv: col1 col2 col3

Кажется, что разделители ; удалены в процессе, и я не могу понять, почему.

Будет ли у кого-нибудь объяснение и, в конечном итоге, решение?

Большое спасибо

1 Ответ

0 голосов
/ 05 февраля 2020

Вы должны упомянуть значение OFS (разделитель выходных полей) как; чтобы получить их в разных столбцах. Не могли бы вы попробовать следующее.

awk 'BEGIN{FS=OFS=";"} FNR==1 {print;exit}' input.csv > output.csv

Причина, по которой исчезают точки с запятой в выводе? Существует термин, называемый разделителем выходного поля, который обозначается как OFS. в программировании awk. Поэтому, когда он НЕ установлен нами специально, тогда его значением является пространство. Следовательно, нам нужно установить его на; как я делал в приведенном выше коде, чтобы разделитель столбца сохранялся и в выходных данных.

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