2017-07-25 41 views
0

所以我試圖添加一個「!」在我placesCapEx文件中的每個字從我placesCap文件末尾sed正在添加字符開始字vs結尾

這是什麼樣子: Yugoslavian Zambia Zambian Zomba

這就是我想要它看起來像: Yugoslavian! Zambia! Zambian! Zomba!

我已經試圖sed 's/$/\!/' Wordlists/placesCap > Wordlists/placesCapEx,只是sed 's/$/!/' Wordlists/placesCap > Wordlists/placesCapEx

會發生什麼事是,當我運行這個,然後cat Wordlists/placesCapEx它輸出 !ugoslavian !ambia !ambian !omba

我做了一些研究,有人說一些關於它是一個Unix的事情,但他們從來沒有進入細節

回答

1

你簡單的sed命令應該正常工作的一個文本文件,其中最終的線是單個新行字符。這裏可能有「dos」格式的文件(回車/換行)。

考慮:

$ cat zippy 
Zippy 
$ od -c zippy 
0000000 Z i p p y \r \n 
0000007 
$ sed 's/$/!/' zippy 
!ippy 
$ sed 's/$/!/' zippy | od -c 
0000000 Z i p p y \r ! \n 
0000010 

你看到一個終端上顯示\ r的效果:將光標移動到開始行,打印,換行符進入下一行「!」。

來處理\ r \ n對作爲結束行字符的存在,你可以嘗試:

$ sed 's/\r*$/!/' zippy 
Zippy! 

...假設你的sed榮譽\ R作爲礦(GNU sed的4.2 .2)的確如此。

+0

這正是我需要的,謝謝!並感謝您對問題的解釋! –

相關問題