Regex 如何使用sed将空格替换为逗号?

Regex 如何使用sed将空格替换为逗号?,regex,unix,vim,replace,sed,Regex,Unix,Vim,Replace,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 如果您正在谈论的是sed,那么这是有效的: se

我想用逗号分隔符替换每个字段和每个字段之间的空白。有人能告诉我怎么做吗?我尝试了下面的命令,但无效。谢谢

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内部,您希望在正常(命令)模式下键入:

在终端提示下,您可以使用
sed
对文件执行此操作:

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

注意:sed的
-i
选项意味着“就地编辑”,因为它将修改输入文件。

我知道这不完全是您想要的,但是,对于用换行符替换逗号,这非常有效:

tr , '\n' < file
tr,'\n'
试试下面的命令,它应该适合您

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

如果您想在终端上输出

$sed 's/ /,/g' filename.txt
但是如果您想编辑文件本身,即如果您想用逗号替换文件中的空格

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

如果您的数据包含任意空白字符序列(制表符、空格),并且希望用一个逗号替换每个序列,请使用以下命令:

sed 's/[\t ]+/,/g' input_file
sed -r 's/[[:space:]]+/,/g' input_file

如果要替换空格字符序列(包括回车符和退格符等其他字符),请使用以下命令:

sed 's/[\t ]+/,/g' input_file
sed -r 's/[[:space:]]+/,/g' input_file

在Linux上使用下面的测试(它将用逗号替换空格)

稍后,您可以使用以下命令将输出放入文件中:

sed 's/\s/,/g' /tmp/test.txt > /tmp/test_final.txt
PS:test是您要使用的文件

我刚刚确认:

cat file.txt | sed "s/\s/,/g"

在Cygwin终端(mintty 2.9.0)中成功地用逗号替换空格。其他样品都不适合我。

这是VIM吗?我在任何地方都看不到
sed
。是的,它在vim编辑器中。看起来他在这里尝试使用vim,而不是sed,很好。如果你在Max OSX上,
-I
选项需要一个参数。如果不需要备份,您可以向其传递一个空字符串。^非常感谢,花了一段时间试图在macNice上修复此命令,我一直在寻找此命令,谢谢
sed 's/\s/,/g' /tmp/test.txt > /tmp/test_final.txt
cat file.txt | sed "s/\s/,/g"