要在sed中直接用“\t”来输出制表位是无效的。比如下面的句子:
sed -i "5i\tThis is a tab. " test.txt
执行结果是:
This is a tab.
网上说的许多方法并没有用。比如这种“那就直接在\t地方按一下tab键”根本不起作用。
这篇文章https://blog.csdn.net/weixin_33859231/article/details/91671308的方法" sed -e $‘s/ /\t/3’ “虽然也不能直接用,输出的结果在行首前有个“/”。但给我了点启发。经过测试,通过在”\t"前加一个“\ ”(是一个反斜杠“\”和一个空格)就可以直接输出制表位了。最后的语句如下:
sed -i "5i\ \tThis is a tab. " test.txt
执行结果是:
This is a tab.
结果如下图,其中行首有“s/ /”是由语句“ sed -i "5is/ /\tThis is a tab. " test.txt ”产生的: