📅  最后修改于: 2023-12-03 15:20:41.222000             🧑  作者: Mango
在数据处理过程中,经常需要将 TSV(Tab-separated values)文件转换成 CSV(Comma-separated values)文件。本文介绍使用 bash 脚本实现 TSV 到 CSV 文件的转换。
cat
命令读取 TSV 文件(例如 example.tsv)的内容。sed
命令将 TSV 文件中的制表符替换成逗号。head
命令将标题行提取出来。实现代码如下:
#!/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 命令。该脚本实现简单,易于使用,对于需要频繁进行数据转换的场景具有一定的应用价值。