在 Linux 中将 CSV 文件转换为 TSV 文件的 5 种方法在 Linux 中将 CSV 文件转换为 TSV 文件的 5 种方法在 Linux 中将 CSV 文件转换为 TSV 文件的 5 种方法在 Linux 中将 CSV 文件转换为 TSV 文件的 5 种方法
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Linux 中将 CSV 文件转换为 TSV 文件的 5 种方法

在管理和分析数据时,经常需要将文件从一种格式转换为另一种格式。如果您在 Linux 中使用 CSV(逗号分隔值)文件,并希望将其转换为 TSV(制表符分隔值Value)文件,那么您来对地方了,因为本文将帮助您完成执行所需转换的过程。

了解 CSV 和 TSV

CSV 文件已广泛用于存储结构化数据。但是,TSV 文件比 CSV 文件具有一些优势。

CSV 文件使用逗号分隔值,而 TSV 文件则使用制表符,这可以使数据处理更轻松,尤其是在处理数据本身内的逗号时。

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

如何在 Linux 中将 CSV 转换为 TSV

在Linux中将CSV文件转换为TSV文件可以通过多种方法实现,如下:

1.使用awk命令

awk 是一个功能强大的文本处理工具,可让您有效地操作和转换数据,它还用于将 CSV 文件转换为 TSV 文件,如图所示。

awk -F ',' 'BEGIN {OFS="\t"} {$1=$1}1' tecmint.csv > tecmint.tsv
ls -l tecmint.tsv

将 howtoing.csv 替换为 CSV 文件的实际文件名,并将 howtoing.tsv 替换为转换后的 TSV 文件所需的文件名。

让我们分解一下命令:

  • -F ',' 将输入字段分隔符设置为逗号,表示输入文件为 CSV 格式。
  • BEGIN {OFS="\t"} 将输出字段分隔符设置为制表符,指定输出文件应采用 TSV 格式。
  • {$1=$1} 强制 awk 使用指定的字段分隔符重新格式化输入字段。
  • 1 是一种常见的 awk 模式,它会触发默认操作,即打印修改的记录。

2.使用sed命令

sed 命令是 Linux 中另一个强大的工具,可用于轻松将 CSV 文件转换为 TSV 文件。

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

sed 's/,/\t/g' tecmint.csv > tecmint.tsv
ls -l tecmint.tsv

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

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

3.使用csvkit库

csvkit 库提供了一组方便且功能强大的命令行工具,用于在 Linux 中处理 CSV 文件。它提供了一种将 CSV 文件转换为 TSV 格式的简单方法。

但是,您必须首先通过以下命令在 Linux 系统上安装 csvkit:

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 文件转换为 Linux 中的 TSV 文件,您可以使用 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 文件名。

然后使用 python3 解释器运行 Python 文件:

python3 tecmint.py

5. 使用 Perl 脚本

您还可以在 Linux 中使用 Perl 编程语言将 CSV 文件转换为 TSV 文件。为此,您必须遵循以下步骤:

使用以下命令创建一个新的 Perl 脚本文件:

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

结论

在 Linux 中使用 CSV 文件并需要将其转换为 TSV 文件时,有多种方法可用。本文提供了使用 awk 和 sed 等命令、利用 csvkit 库、使用 Python 的分步说明。,并采用Perl编程语言。

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

©2015-2025 艾丽卡 support@alaica.com