2013-08-30 37 views
4

這是我的代碼,test.txt文件包含更多的空行和空格,除了製表符,我想刪除空行和空行,但是我需要一個空行開始st^,怎麼做?如何使用shell腳本在文本文件中添加空行?

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 

IAM越來越像輸出

st^flower 
p^rose 
p^jasmine 
st^animals 
p^bear 
p^elephant 

我想輸出像

st^flower 
p^rose 
p^jasmine 

st^animals 
p^bear 
p^elephant 
+1

而且輸入是...? –

+0

輸入HTML文件,HTML文件中IAM分割和生成文本文件likest ^花 P 1上升 P 1茉莉 ST ^動物 P 1承受 P 1大象 – user2653831

回答

0

我讀過您的評論「它給每一條線路的空間,但我只ST ^之前想」。我

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

正常工作: 所以你可以ST ^與此代碼之前插入新行:

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

例如。

+1

之前避免[無用的'cat'](http://partmaps.org/era/unix/award.html)。 – tripleee

+0

是的,謝謝。 「貓」創建一個更多的過程。正確的腳本:$ sed's/^ st \ ^/\ n \ 0/g'/tmp/tt.txt – akozin

+0

謝謝,但是我不希望st^flower在它來到一個空行之前 – user2653831

14

爲了輸出空行使用此:

echo -en '\n' 

ë - 解釋\n

N - 輸出關於端沒有空行,所以與雙空行

用單引號沒有亂七八糟,以防止shell解釋字符作爲行尾。

+1

\ n不工作me..any其他方式用於在文本文件中添加空行 – user2653831

+1

感謝您指出需要單引號。解決了我的問題。 –

1
echo -e "\n" 

用雙引號,它必須努力

+0

它給每一個行的空間,但我只想在st^ – user2653831

相關問題