使用命令行删除逗号之间的空格

如果我有一个像

1050505,Some Customer, 1 , 1 ,Some Order, 5 , 6 Item 1050505,Some Customer, 1 , 1 ,Some Order, 5 , 6 Item 1050505,Some Customer, 1 , 1 ,Some Order, 5 , 6 Item 1050505,Some Customer, 1 , 1 ,Some Order, 5 , 6 Item 1050505,Some Customer, 1 , 1 ,Some Order, 5 , 6 Item 

但是我需要去掉空格,除了在单词之间(即逗号之前或之后的空格)。

 1050505,Some Customer,1,1,Some Order,5,6 Item 

用标准命令行做这个最简单的方法是什么?

你可以用一些工具来做到这一点。 Perl的:

 perl -pe 's/\s*,\s*/,/g;' file.txt 

SED:

 sed 's/,\s\+/,/g; s/\s\+,/,/g' < file.txt 

AWK:

 awk '{gsub(", +", ",", $0); gsub(" +,", ",", $0); print $0}' file.txt 

一个简单的sed命令可以做到这一点:

 sed -i 's/,[ ]*/,/g' /path/to/file 
 perl -pi -e 's/[\s]+,/,/g;s/,[\s]+/,/g' your_file