2012-11-24 52 views
11

我想用逗号分隔符替换每个字段之间的空白空间。有人让我知道我该如何做到这一点。我尝试了下面的命令,但它不起作用。谢谢。如何用逗号替换空格使用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,这个工程:

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

vim,使用相同的正则表达式来代替:

s/ /,/g 
+0

看起来他似乎在尝试在这里使用Vim,而不是sed,很好的调用 – netpoetica

7

里面vim,要在正常的时候输入(命令)模式:

:%s/ /,/g 

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

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

注:-i选项sed手段“就地编辑”,作为它会修改输入文件。

+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 
相关问题