2012-11-24 92 views
11

我想用逗號分隔符替換每個字段之間的空白空間。有人讓我知道我該如何做到這一點。我嘗試了下面的命令,但它不起作用。謝謝。如何用逗號替換空格使用sed?

My command: 
:%s//,/ 


53 51097 310780 1 
56 260 1925 1 
68 51282 278770 1 
77 46903 281485 1 
82 475 2600 1 
84 433 3395 1 
96 212 1545 1 
163 373819 1006375 1 
204 36917 117195 1 
+0

這是VIM嗎?我在任何地方都看不到'sed'。 – tjameson

+0

是的,它在vim編輯器裏面。 – Teja

回答

18

如果你正在談論sed,這個工程:

sed -e "s/ /,/g" < a.txt 

vim,使用相同的正則表達式來代替:

s/ /,/g 
+0

看起來他似乎在嘗試在這裏使用Vim,而不是sed,很好的調用 – netpoetica

7

裏面vim,要在正常的時候輸入(命令)模式:

:%s/ /,/g 

在終端提示,您可以使用sed對文件執行此:

sed -i 's/\ /,/g' input_file 

注:-i選項sed手段「就地編輯」,作爲它會修改輸入文件。

+5

如果你在Max OSX上,'-i'選項需要一個參數。如果你不需要備份,你可以傳遞一個空字符串。 – tripleee

+0

^非常感謝你,花了一段時間試圖在mac上修復這個命令 – Sean

2

我知道這不完全是你在問什麼,但是,對於一個換行符替換一個逗號,這個偉大的工程:

tr , '\n' < file 
1

試試下面的命令,它應該制定出適合您。

sed "s/\s/,/g" orignalFive.csv > editedFinal.csv 
0

如果你想在終端的輸出,那麼,

$sed 's/ /,/g' filename.txt 

但是,如果你要編輯的文件本身也就是說,如果你想用文件中的逗號來代替空間,然後

$sed -i 's/ /,/g' filename.txt 
相關問題