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

时间:2012-11-24 06:03:40

标签: 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

8 个答案:

答案 0 :(得分:40)

如果您正在谈论sed,这可行:

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

vim中,使用相同的正则表达式替换:

s/ /,/g

答案 1 :(得分:8)

vim内,您希望在正常(命令)模式下输入:

:%s/ /,/g

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

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

注意: -i的{​​{1}}选项表示“就地编辑”,因为它会修改输入文件。

答案 2 :(得分:3)

我知道这不是你要求的,但是,用换行替换逗号,这很有效:

tr , '\n' < file

答案 3 :(得分:2)

尝试以下命令,它应该适合您。

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

答案 4 :(得分:1)

如果您想在终端上输出,

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

但是如果你想编辑文件本身,如果你想用文件中的逗号替换空格,那么

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

答案 5 :(得分:1)

我刚刚确认:

string dateString = Dt.Rows[0]["Enddate"].ToString();
DateTime date = Convert.ToDateTime(dateString);

date.AddDays(-3).ToString();

成功在Cygwin终端(最小2.9.0)中用逗号替换了空格。没有其他样本对我有用。

答案 6 :(得分:0)

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

sed 's/[\t ]+/,/g' input_file

sed -r 's/[[:blank:]]+/,/g' input_file

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

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

答案 7 :(得分:-1)

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

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

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

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

PS:test是您要使用的文件