Сохранить файл как текст с разделителями-табуляциями и электронную таблицу

Сохранить файл как текст с разделителями-табуляциями и электронную таблицу

Я использую следующую командную строку в Linux для сохранения содержимого моего входного файла (текстовый файл, состоящий из столбцов) в виде электронной таблицы:

less input_file > out_put.csv

Мой выходной файл: введите описание изображения здесь

Проблема в выходной таблице: все столбцы входного файла слиплись в один столбец выходного файла (таблица CSV).

Как мне пересмотреть мой простой код, чтобы сделать его более эффективным для сохранения моего txt-файла в виде текста с разделителями табуляции и электронной таблицы.

решение1

Прежде всего, lessэто просто пейджер, это инструмент, который позволяет вам читать файлы. То, что вы делаете, это то же самое, что копировать input_file в out_put.csv ( cp input_file out_put.csv). Вы никак не меняете содержимое.

Таким образом, чтобы прочитать его как электронную таблицу, например, используя libreoffice, вам нужно будет открыть приложение для работы с электронными таблицами, затем открыть input_fileи использовать пробел в качестве разделителя столбцов:

        диалоговое окно импорта текста libreoffice с выбранными в качестве разделителя пробелами

Теперь, если вы действительно хотите преобразовать свой файл взапятаяформат разделенных значений ( .csv), вам нужно будет добавить запятые. Эта команда заменит все пробелы запятыми в каждой из ваших строк и сохранит вывод как output.csv:

sed 's/  */,/g' input_file > output.csv

Команда выше, sedи вот я ее используюоператор подстановки. Общий формат — , s/pattern/replacement/который заменит patternна replacement. gВ конце заставляет его заменитьвсевхождений шаблона в каждой строке, без него он заменит только первое. Шаблон, который я ему дал, был (пробел), за которым следовали 0 или более (вот что *означает) пробелов ( *), и я сказал ему заменить на ,. Это по сути означает «заменить любые вхождения одного или более пробелов запятой».

Связанный контент