2012-11-24 17 views
11

カンマ区切りで各フィールド間の空白を置き換えたいと思います。誰かが私にthisを実行する方法を教えてもらえますか?私は以下のコマンドを試しましたが、うまくいきません。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を話している場合:交換するために、同じ正規表現を使用し、vim

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

を:vimインサイド

s/ /,/g 
+0

彼はここでVimを使っているようですが、sedではなく、よろしくお願いします。 – netpoetica

7

、あなたはとき、通常で入力したいです(コマンド)モード:

:%s/ /,/g 
それが修正することのように sed手段に -iオプション「インプレース編集」、:

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

注:ファイルでこれを実行するためにsedを使用することができ、端末プロンプトで10

入力ファイル。

+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 
関連する問題