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

时间:2014-02-04 13:06:30

标签: linux

如果我有像

这样的文件
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

通过标准命令行执行此操作的最简单方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用几种工具执行此操作。的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

答案 1 :(得分:0)

perl -pi -e 's/[\s]+,/,/g;s/,[\s]+/,/g' your_file

答案 2 :(得分:0)

一个简单的sed命令就可以了:

sed -i 's/,[ ]*/,/g' /path/to/file
相关问题