这是我的代码,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
答案 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'
对我来说很好。