如何将CSV文件转换为Linux中的TSV文件

在管理和分析数据时,将文件从一种格式转换为另一种格式是经常需要的。如果您正在与CSV((逗号分隔的值)文件中的文件,想将其转换为TSV((选项卡分离值)文件,您在正确的位置,因为本文将帮助您进行执行所需转换的过程。

了解CSV和TSV

CSV文件已被广泛用于存储结构化数据。然而,TSV文件提供了一些优势CSV文件。

尽管CSV用逗号归档单独的值,TSV文件使用选项卡,这可以使数据处理更容易,尤其是在处理数据本身中的逗号时。

TSV文件也往往与通常用于数据处理和分析的各种应用程序和工具更兼容。

如何将CSV转换为Linux中的TSV

转换CSV文件TSVLinux中的文件可以通过各种方法来实现,如下所示:

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文件的所需文件名。

Awk命令 - 将CSV转换为TSV

让我们分解命令:

  • -F ','将输入字段分离器设置为逗号,表明输入文件为CSV格式。
  • BEGIN {OFS="\t"}将输出字段分离器设置为选项卡,指定输出文件应为TSV格式。
  • {$1=$1}使用指定的字段分离器强制尴尬地重新格式化输入字段。
  • 1是触发默认操作的常见尴尬模式,即打印修改后的记录。

2。使用sed命令

这是Linux中的另一个功能强大的工具,可轻松将CSV文件转换为TSV文件。

这是sed命令您必须在终端中执行以将CSV文件转换为TSV文件。

$ sed 's/,/\t/g' tecmint.csv > tecmint.tsv
$ ls -l tecmint.tsv
SED命令 - 将CSV转换为TSV

让我们了解命令的组成部分:

  • s/,/\t/g是SED使用的替代模式,它搜索逗号(,)在输入文件中并用选项卡代替它们(\t)
  • input.csv应替换为CSV文件的实际文件名。
  • output.tsv指定转换的TSV文件的所需文件名。您可以选择自己喜欢的任何名称。

3。使用CSVKIT库

CSVKIT图书馆提供了方便而强大的用于使用Linux中的CSV文件。它提供了一种将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
CSVKIT - 将CSV转换为TSV格式

4。使用Python脚本

要将CSV文件转换为Linux中的TSV文件,您可以使用Python,这是一种多功能编程语言,在Linux Systems中通常可用。请按照以下步骤使用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文件名。

然后使用python3解释器:

$ python3 tecmint.py
Python将CSV转换为TSV

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, 其次是y并输入按钮。

使Perl脚本可执行,并使用以下命令运行Perl脚本:

$ chmod +x tecmint.pl
$ ./tecmint.pl
$ ls -l tecmint.tsv
PERL将CSV转换为TSV
结论

在Linux中使用CSV文件并需要将其转换为TSV文件时,有几种可用的方法。本文提供了使用命令之类的分步说明尴尬sed,利用CSVKIT库,使用Python和雇用珀尔编程语言。

每种方法都提供自己的优势,并可以轻松将CSV文件转换为TSV格式。通过遵循提供的说明,用户可以有效执行所需的转换并使用其Linux系统中的TSV文件。