gpt4 book ai didi

linux - 仅删除文件中数字之间的多个空格

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:07:53 24 4
gpt4 key购买 nike

输入文件:

101|989881|Customer contact 123 456  7777|AXD

102|989882|Declined sales. Details 122 -333 - 1234 contact|XYZ

输出文件:

101|9881|Customer contact 1234567777|AXD

102|9882|Declined sales. Details
122-333-1234 contact|XYZ

尝试过:

sed 's/\([0-9]\) \([0-9]\)/\1\2/g' inputfile

此命令仅在数字之间存在一个空格并且不满足其他条件时删除。

谁能帮忙解决这个问题。

最佳答案

你快到了!下面是你想要的......它删除了多个连续的空格,并且还会继续,直到你没有更多的匹配(t命令的目的)......这处理你匹配'0 - 0'的情况 - 没有t 语句,第二个匹配项“- 0”将不会被处理,因为“-”在前一个匹配项中。

sed ':x; s/\([0-9-]\) \+\([0-9-]\)/\1\2/g; tx' inputfile

有一个潜在的弱点......那就是当你遇到'- -'时你可能不想删除空格。这需要更多的工作:

sed ':x; s/\([0-9]\) \+\([0-9-]\)/\1\2/g; tx; :y; s/\([0-9-]\) \+\([0-9]\)/\1\2/g; ty;' inputfile

关于linux - 仅删除文件中数字之间的多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34885164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com