31

各フィールド間の空のスペースをカンマ区切りに置き換えたいと思います。誰かがこれを行う方法を教えてくれませんか。以下のコマンドを試しましたが、うまくいきません。ありがとうございます。

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
4

8 に答える 8

59

について話している場合sed、これは機能します:

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

ではvim、同じ正規表現を使用して次を置き換えます。

s/ /,/g
于 2012-11-24T06:07:42.343 に答える
10

の中vimで、通常 (コマンド) モードのときに次のように入力します。

:%s/ /,/g

端末プロンプトでsed、ファイルに対してこれを実行するために使用できます。

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

注:-iオプション toは、入力ファイルを変更するという意味で、sed「インプレース編集」を意味します。

于 2012-11-24T06:10:43.917 に答える
3

私はそれがあなたが求めているものではないことを知っていますが、コンマを改行に置き換えるために、これはうまく機能します:

tr , '\n' < file
于 2015-01-08T00:15:39.980 に答える
-1

Linux では、以下を使用してテストします (空白をコンマに置き換えます)。

 sed 's/\s/,/g' /tmp/test.txt | head

後で、以下のコマンドを使用して出力をファイルに取り込むことができます。

sed 's/\s/,/g' /tmp/test.txt > /tmp/test_final.txt

PS: test は使用したいファイルです

于 2018-12-21T06:51:52.247 に答える