各フィールド間の空のスペースをコンマ区切り文字に置き換えたいと思います。誰かにこれを行う方法を教えてもらえますか?.
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
sed
について話している場合、これは機能します。
sed -e "s/ /,/g" < a.txt
vim
で、同じ正規表現を使用して置き換えます:
s/ /,/g
vim
の内部では、通常(コマンド)モードのときに入力する必要があります。
:%s/ /,/g
ターミナルプロンプトで、sed
を使用してファイルでこれを実行できます。
sed -i 's/\ /,/g' input_file
注:sed
の-i
オプションは、入力ファイルを変更するという点で、「インプレース編集」を意味します。
私はそれがまさにあなたが求めているものではないことを知っていますが、コンマを改行で置き換えるために、これはうまくいきます:
tr , '\n' < file
次のコマンドを試してみてください。
sed "s/\s/,/g" orignalFive.csv > editedFinal.csv
ターミナルでの出力が必要な場合は、
$sed 's/ /,/g' filename.txt
ただし、ファイル自体を編集する場合i.e。ファイル内のスペースをコンマに置き換える場合は、
$sed -i 's/ /,/g' filename.txt
私はちょうどそれを確認しました:
cat file.txt | sed "s/\s/,/g"
cygwin端末のスペースをコンマで正常に置き換えます(mintty 2.9.0)。他のサンプルはどれも役に立たなかった。
データに空白文字(タブ、スペース)の任意のシーケンスが含まれており、各シーケンスを1つのコンマに置き換える場合は、次を使用します。
sed 's/[\t ]+/,/g' input_file
または
sed -r 's/[[:blank:]]+/,/g' input_file
キャリッジリターンやバックスペースなどの他の文字を含む一連のスペース文字を置き換える場合は、次を使用します。
sed -r 's/[[:space:]]+/,/g' input_file