使用命令行工具重命名 CSV 标题

使用命令行工具重命名 CSV 标题

给定一个 CSV 文件,

h1 h2 h3
a  b  c
z  x  b

如何使用命令行工具将第一个标题重命名为,One将第三个标题重命名为Three

One h2 Three
a   b  c
z   x  b

答案1

这应该可以做到:

https://stackoverflow.com/questions/11145270/bash-replace-an-entire-line-in-a-text-file

标题应该只是文件中的第一行,因此如果您使用 N = 1,并使用所需的标题重写该行,那么:

sed -i '1s/.*/One, h2, Three/' file.csv

会做的

答案2

Sed 有“change”命令c来替换整个当前行:

sed -i '1c\One h2 Three' file.csv

这适用于 GNU sed。其他 sed 可能需要将文本输入到单独的行中:

sed -i '1c\
One h2 Three' file.csv

答案3

基于行的解决方案(例如sed基于)不适用于多行 csv 标题。

所以你需要一些东西来理解 csv 格式。

例如csvtool(ocaml):

echo 'My,New,Header'      > output.csv
csvtool drop 1 input.csv >> output.csv

答案4

以下命令应该有效

sed -i '1s/h1/One/;1s/h3/Three/;' file.csv

-i就地编辑文件。

1执行第一行的操作。

s/h1/One/用 One 替换 h1。

相关内容