[ad_1]
Когда дело доходит до управления и анализа данных, преобразование файлов из одного формата в другой является частой необходимостью. Если вы работаете с CSV (Значения, разделенные запятыми) файлов в Linux и хотите преобразовать их в ТСВ (Значения, разделенные табуляцией), вы находитесь в нужном месте, потому что эта статья поможет вам в процессе выполнения необходимого преобразования.
Понимание CSV и TSV
CSV файлы широко используются для хранения структурированных данных. Однако, ТСВ файлы предлагают некоторые преимущества по сравнению с CSV файлы.
Пока CSV файлы разделяют значения запятыми, ТСВ файлы используют вкладки, которые могут упростить обработку данных, особенно при работе с запятыми внутри самих данных.
Файлы TSV также имеют тенденцию быть более совместимыми с различными приложениями и инструментами, обычно используемыми для обработки и анализа данных.
Как конвертировать CSV в TSV в Linux
Преобразование CSV файлы в ТСВ файлы в Linux могут быть получены различными способами, а именно:
Оглавление
1. Использование команды awk
аук — это мощный инструмент обработки текста, который позволяет эффективно манипулировать данными и преобразовывать их. Он также используется для преобразования файла CSV в файл TSV, как показано на рисунке.
$ awk -F ',' 'BEGIN {OFS="\t"} {$1=$1}1' tecmint.csv > tecmint.tsv $ ls -l tecmint.tsv
Заменять tecmint.csv с фактическим именем файла вашего CSV-файла и tecmint.tsv с желаемым именем файла для преобразованного файла TSV.
Разберем команду:
-F ','
устанавливает разделитель полей ввода в виде запятой, указывая, что входной файл находится в формате CSV.BEGIN {OFS="\t"}
устанавливает разделитель выходных полей в виде табуляции, указывая, что выходной файл должен быть в формате TSV.{$1=$1}
заставляет awk переформатировать поля ввода, используя указанные разделители полей.1
— это распространенный шаблон awk, который запускает действие по умолчанию, которое заключается в печати измененной записи.
2. Использование команды sed
команда sed — еще один мощный инструмент, доступный в Linux, который можно использовать для простого преобразования файлов CSV в файлы TSV.
Здесь сед команду, которую вы должны выполнить в терминале для преобразования файла CSV в файл TSV.
$ sed 's/,/\t/g' tecmint.csv > tecmint.tsv $ ls -l tecmint.tsv
Давайте разберемся с компонентами команды:
s/,/\t/g
это шаблон замены, используемый sed, который ищет запятые(,)
во входном файле и заменяет их вкладками(\t)
.- input.csv следует заменить фактическим именем файла вашего CSV-файла.
- вывод.tsv указывает желаемое имя файла для преобразованного файла TSV. Вы можете выбрать любое имя, которое вы предпочитаете.
3. Использование библиотеки csvkit
csvkit библиотека обеспечивает удобный и мощный набор инструментов командной строки для работы с файлами CSV в Linux. Он предлагает простой способ конвертировать файлы CSV в формат TSV.
Однако сначала необходимо установить csvkit в вашей системе Linux с помощью следующей команды:
$ sudo apt install csvkit [On Debian, Ubuntu and Mint] $ sudo yum install csvkit [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/csvkit [On Gentoo Linux] $ sudo apk add csvkit [On Alpine Linux] $ sudo pacman -S csvkit [On Arch Linux] $ sudo zypper install csvkit [On OpenSUSE]
Затем используйте следующую команду с -T
Параметр, который указывает выходной разделитель в виде табуляции и преобразует файл CSV в формат TSV.
$ csvformat -T tecmint.csv > tecmint.tsv $ ls -l tecmint.tsv
4. Использование скрипта Python
Чтобы преобразовать файл CSV в файл TSV в Linux, вы можете использовать Python, универсальный язык программирования, широко доступный в системах Linux. Выполните следующие шаги, чтобы использовать Python для преобразования:
Создайте новый файл сценария Python в терминале, выполнив следующую команду:
$ nano tecmint.py OR $ vi tecmint.py
Затем добавьте следующий код в файл сценария.
import csv csv_file="tecmint.csv" tsv_file="tecmint.tsv" with open(csv_file, 'r') as input_file, open(tsv_file, 'w') as output_file: csv_reader = csv.reader(input_file) tsv_writer = csv.writer(output_file, delimiter="\t") for row in csv_reader: tsv_writer.writerow(row)
Вы должны заменить имя файла CSV своим собственным именем файла, сохраненным в вашей системе, и именем файла TSV по вашему выбору.
Затем запустите файл Python, используя питон3 устный переводчик:
$ python3 tecmint.py
5. Использование Perl-скрипта
Вы также можете использовать Перл язык программирования в Linux для преобразования файла CSV в файл TSV. Для этого вам необходимо выполнить следующие шаги:
Создать новый Перл файл сценария с помощью следующей команды:
$ nano tecmint.pl OR $ vi tecmint.pl
Добавьте следующий код в файл скрипта:
#!/usr/bin/perl use strict; use warnings; my $csv_file="tecmint.csv"; my $tsv_file="tecmint.tsv"; open(my $input_fh, '<', $csv_file) or die "Failed to open $csv_file: $!"; open(my $output_fh, '>', $tsv_file) or die "Failed to create $tsv_file: $!"; while (my $line = <$input_fh>) { chomp $line; my @fields = split(',', $line); my $tsv_line = join("\t", @fields); print $output_fh $tsv_line . "\n"; } close $input_fh; close $output_fh;
Затем сохраните файл с помощью CTRL+X
с последующим Д и введите кнопку.
Сделайте сценарий Perl исполняемым и запустите сценарий Perl, используя следующие команды:
$ chmod +x tecmint.pl $ ./tecmint.pl $ ls -l tecmint.tsv
Заключение
При работе с CSV-файлами в Linux и необходимости их преобразования в TSV-файлы доступно несколько методов. В статье приведены пошаговые инструкции по использованию таких команд, как аук и седиспользуя csvkit библиотека, используя питони использование Перл язык программирования.
Каждый метод имеет свои преимущества и позволяет легко конвертировать файлы CSV в формат TSV. Следуя предоставленным инструкциям, пользователи могут эффективно выполнять необходимое преобразование и работать с файлами TSV в своей системе Linux.