📜  tsv 到 csv 文件 bash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:20:41.222000             🧑  作者: Mango

TSV 到 CSV 文件 bash

简介

在数据处理过程中,经常需要将 TSV(Tab-separated values)文件转换成 CSV(Comma-separated values)文件。本文介绍使用 bash 脚本实现 TSV 到 CSV 文件的转换。

实现
  1. 使用 cat 命令读取 TSV 文件(例如 example.tsv)的内容。
  2. 使用 sed 命令将 TSV 文件中的制表符替换成逗号。
  3. 使用 head 命令将标题行提取出来。
  4. 将修改后的内容输出到新的 CSV 文件(例如 example.csv)中。

实现代码如下:

#!/bin/bash

# 将 TSV 文件转换成 CSV 文件
# Usage: ./tsv_to_csv.sh example.tsv

if [[ -z "$1" ]]; then
  echo "Usage: ./tsv_to_csv.sh example.tsv"
  exit 1
fi

# 读取 TSV 文件内容,并将制表符替换成逗号
cat "$1" | sed "s/\t/,/g" > "$1.csv"

# 提取标题行
header=$(head -n 1 "$1" | sed "s/\t/,/g")

# 将标题行写入 CSV 文件中
echo "$header" > "$1.csv.tmp"

# 将 TSV 文件内容写入 CSV 文件中
cat "$1.csv" >> "$1.csv.tmp"

# 重命名临时文件为正式的 CSV 文件
mv "$1.csv.tmp" "$1.csv"

echo "Conversion completed: $1 -> $1.csv"
使用方法

给定一个 TSV 文件,例如 example.tsv,可以使用以下命令将其转换成 CSV 文件:

./tsv_to_csv.sh example.tsv

转换后的文件名为 example.tsv.csv,可根据实际需要修改文件名。如果输入参数不正确,脚本会输出提示信息并退出。

总结

本文介绍了如何使用 bash 脚本将 TSV 文件转换成 CSV 文件,核心代码使用了 cat、sed 和 head 命令。该脚本实现简单,易于使用,对于需要频繁进行数据转换的场景具有一定的应用价值。