给定一个 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。