[英]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.