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

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

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

最佳答案

您可以使用一些工具来完成此操作。珀尔:

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

关于linux - 使用命令行删除逗号之间的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553402/

相关文章:

java - Eclipse 自动退出退出代码 127

创建一个简单的 gtk 列表

linux - 用于删除小于 xMB 的文件的 Shell 脚本

python - 避免在终端中输入 "python"来打开 .py 脚本?

linux - Linux控制台中的模糊文件搜索

无法连接到本地主机

linux - 自定义提示在 Ubuntu 上的 PowerShell Core 6.0 中打印两次

linux - 根据内容将文件分类到文件夹的 Bash 脚本;如何解决变量中的通配符?

linux - 一个进程中线程的总堆栈大小

linux - grep 仅用于大写单词