Я хочу преобразовать разделенный табуляцией файл в файл CSV. Кто-нибудь может мне помочь?
Вы можете использовать sed как:
sed 's/\t/,/g' input_file > output_file
Это сохранит входной файл без изменений и создаст новый файл output_file
с изменения.
Если вы хотите изменить сам входной файл без создания нового файла, вы можете использовать параметр -i
в sed для внесения изменений на месте:
sed -i 's/\t/,/g' input_file
Попробуйте заменить все вкладки запятыми.
Возможно, с регулярным выражением вроде s / \ t /, / g
, если у вас нет полей в кавычках.
Или, знаете, Excel может сделать это за вас. Или R. Или что-нибудь, что можно записать в файл TSV.
Неужели это обычная проблема, когда задают простой вопрос на всех языках? Хорошо, вот мое решение haskell:
main = interact (unlines . replTab . lines) where
replTab l = l >>= (\line ->
"\"" ++ line "\"" >>= \char ->
case char of
'\t' -> "\",\""
'"' -> "\"\""
_ -> [char]
)
не тестировалось, но должно работать.
PS: Все остальные решения не используют экранирование запятых.