cat file.tsv| sed '1icolumn1 column2 column3 column4 ...' > file2.tsv
我正在使用 sed 为.tsv
文件添加第一行(标题标签)。标签应该用制表符分隔。我一直在使用文字制表符来分隔字符串。
我多次检查了该字符串。但是我一直遇到标签丢失的问题
例如,而不是获取column1 column2 column3
.它常常以column1 column2column3
.然后当我尝试修复它时,它最终会变成column1column2 column3
.
是否有另一种添加选项卡的方法,例如使用“\t”(我尝试过,但没有成功),这样更不容易出错?会awk
是更好的选择吗?
答案1
一种可能的方法是使用printf
命令:
printf "column1\tcolumn2\tcolumn3"
这是结果:
column1 column2 column3
带选项卡:
printf "column1\tcolumn2\tcolumn3"|od -ax
0000000 c o l u m n 1 ht c o l u m n 2 ht
6f63 756c 6e6d 0931 6f63 756c 6e6d 0932
0000020 c o l u m n 3 nul
6f63 756c 6e6d 0033
0000027
(检查上面代码中的0x09,这是TAB)
你的命令将变成:
cat <(printf "column1\tcolumn2\tcolumn3\n") file.tsv >file2.tsv