2011-11-27 98 views
1

我需要編寫一個SHELL腳本刪除後只有一個數字字符串的新行?或者在字符串不以數字開頭之後。例如,一個有一個文件:Shell腳本刪除數字字符串後的新行

asasas 
12345 
adab-123 
123 

我需要的輸出是這樣的:

asasas 12345 
adab-123 123 

sed ':a;N;$!ba;s/\n/ /g'只要將它拆分:

asasas12345 
adab-123123 

而且sed ':a;N;$!ba;s/\n/ /g'給我:

asasas 12345 adab-123 123 

請幫忙。 謝謝。

+0

我不明白你的問題。我編輯它使其更具可讀性,但我不確定我的編輯是否正確。如果不正確請重新編輯它。 – slebetman

回答

2

在這裏,你去!

[jaypal~]$ cat file9 
asasas 
12345 
adab-123 
123 

[jaypal~]$ sed '{N;s/\n/ /g}' file9 
asasas 12345 
adab-123 123 
[jaypal~]$ 
+0

是的。有用。謝謝。 你可以請。解釋它是如何工作的? 第一個替換後的每個下一個(N)行將替換爲新行(/ n)? – user1067739

+0

那麼腳本讀取下一行緩衝區(使用N)並用空格替換新行。這不會對線路進行任何檢查。每一行都會被添加到行之前的行中。 –

+0

好的。我懂了。是否有可能告訴sed檢查號碼字符串,並只把新行!之後呢? – user1067739