在第一行之前插入换行符

时间:2010-11-28 22:48:17

标签: linux bash sed

我正在尝试在文件的第一行文本之前插入换行符。到目前为止我找到的唯一解决方案是:

sed -e '1 i
')

我不喜欢在我的shell脚本中有一个实际的换行符。可以使用标准(GNU)UNIX实用程序以任何其他方式解决这个问题吗?

4 个答案:

答案 0 :(得分:3)

这是一个没有特定shell要求的纯sed解决方案:

sed -e '1 s|^|\n|'

编辑:

请注意,必须至少有一行输入(以及使用行地址的其他任何内容)才能正常工作。

答案 1 :(得分:3)

对于多样性:

echo | cat - file

答案 2 :(得分:2)

单引号字符串之前的$将导致bash解释其中的转义序列。

sed -e '1 i'$'\n'

答案 3 :(得分:1)

你可以使用awk:

$ awk 'FNR==1{print ""} 1' file

哪个适用于任意数量的文件。