如何使用shell脚本在文本文件中添加空行?

时间:2013-08-30 07:16:27

标签: bash

这是我的代码,test.txt文件包含更多的空行和空格,除了tab,我想删除那个空格和空行,但是我需要一个空行才能启动st^,怎么做?

sed "s/^[ ]*//" -i  test.txt
cat $2 > /tmp/tt.txt
sed '/^$/d' test.txt > /tmp/tt.txt
echo " " >> test.txt
echo " " >>  /tmp/tt.txt
mv /tmp/tt.txt  test.txt

我得到像

这样的输出
st^flower
 p^rose
 p^jasmine
st^animals 
 p^bear
 p^elephant

我想输出

st^flower
 p^rose
 p^jasmine

st^animals 
 p^bear
 p^elephant

3 个答案:

答案 0 :(得分:19)

要输出空行,请使用:

echo -en '\n'

e - 解释\n

n - 结尾没有空行,所以双空行没有混乱

使用单引号来防止shell将字符解释为行尾。

答案 1 :(得分:2)

echo -e "\n"

使用双引号,必须正常工作

答案 2 :(得分:0)

我已经阅读了你的评论“它给了每一行空间,但我只想在st ^之前”。 因此,您可以使用以下代码在st ^之前插入新行:

$cat /tmp/tt.txt | sed 's/^st\^/\n\0/g'

例如:

$ echo '
st^flower
 p^rose
 p^jasmine
 st^animals 
 p^bear
 p^elephant' | sed 's/^st\^/\n\0/g' 

对我来说很好。