繁体   English   中英

在Unix中用逗号替换多个空格

[英]replacing multiple spaces with comma in unix

我有一个包含以下数据的文件:

1               abcd               hello world               5000

(注意:每个单词之间有15个空格,“ hello world”是一个条目,中间有一个空格)

我必须用一个逗号替换15个空格。 “ hello”和“ world”之间的单个空格应保持原样。

我尝试了sed和tr命令的各种组合,但是没有任何效果。

这是sed的工作:

$ sed -r 's/ {15}/,/g' file
1,abcd,hello world,5000

或者,不带允许扩展正则表达式的-r标志:

$ sed 's/ \{15\}/,/g' file
1,abcd,hello world,5000

这表示:获得15个空格,并用逗号替换。 较小的空格将不会被替换。

因为您已经有了正确的答案,所以这仅仅是一个改进:

这将用“,”替换至少2个连续空格的任何序列

sed -r 's/ {2,}/,/g' file
1,abcd,hello world,5000

这将允许“ hello world”或任何其他使用单个空格作为分隔符的字符串,并且还省去了必须确保恰好有15个空格的麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM