使用Sed插入带有制表符分隔符的文本行

时间:2014-07-10 00:29:26

标签: bash sed

我正在尝试使用制表符分隔符在文本文件的顶部添加一行文字。

sed -i '1s/^/x,y,z\n/' INPUTFILE.txt

^^这当然会在输入文件的顶行产生“x,y,z”。

sed -i '1s/^/x'\t'y'\t'z\n/' INPUTFILE.txt

^^这会在输入文件的第一行产生“xtytz”。

在条目x,y和z之间添加标签的正确语法是什么?

谢谢!


更新
最后有两条建议在这里工作:

  1. 使用实际标签作为x,y和z之间的“字符”

    sed -i '1s/^/x y z\n/' INPUTFILE.txt

  2. 使用\ t,但没有围绕它的' ...只需将其放入!

    sed -i '1s/^/x\ty\tz\n/' INPUTFILE.txt

  3. 非常感谢所有投入。

2 个答案:

答案 0 :(得分:2)

这适用于我的sed(GNU sed 4.2.1):反斜杠后面有一个换行符

seq 5 | sed '1i\
a\tb\tc'
a   b   c
1
2
3
4
5

答案 1 :(得分:2)

你的第二次尝试几乎是正确的。只需删除'分隔\t(GNU sed 4.2.1)

sed -i '1s/^/x\ty\tz\n/' INPUTFILE.txt

然而,格伦杰克曼提出的答案似乎更优雅。