У меня есть сценарий, который генерирует файл .txt
.
В этом файле есть
столбцов, разделенных табуляцией.
Количество столбцов зависит от входного файла.
Как преобразовать файл .txt
в формат csv? Я хочу, чтобы столбцы в файле .txt
находились в отдельных столбцах в файле csv.
образец:
.txt
файл:
header1 header2 header3 header4
1 B 423.sagd.32 333
2 A YXTS.a324.gfd33 555
3 F 343.asr 222
4 D cbs.98st.asd 4232
CSV-файл (ожидаемый результат):
A B C D
1 header1 header2 header3 header4
2 1 B 423.sagd.32 333
3 2 A YXTS.a324.gfd33 555
4 3 F 343.asr 222
5 4 D cbs.98st.asd 4232
Примечание. В файле нет фиксированного количества столбцов или строк.
В файле .csv нет ничего волшебного. Он просто означает значения, разделенные запятыми (иногда табуляцией).
mv myfile.txt myfile.csv
done
Преобразование файла с разделителями табуляции в файл с разделителями-запятыми:
$ tr '\t' ',' <input.txt >output.csv
Это приведет к наивной замене всех табуляций на запятые.
Если ваши данные уже содержат запятые, то эти поля данных должны быть процитированы. Это нетривиальная операция. Для этого лучше всего использовать инструмент с поддержкой CSV, например csvkit
:
$ csvformat -t input.txt >output.csv