输入是:
"At 12: 30 then"
我试过这个,但它不起作用:
echo "At 12: 30 then" | sed -e "/[0-9]\+:\(\s\+\)[0-9]\+/d"
预期输出为:
At 12:30 then
答案 0 :(得分:2)
在那里,sed中的delete命令位于行的上下文中,您可能需要替换。
echo "At 12: 30 then" | sed -e "s/\([0-9]\+\):\(\s\+\)\([0-9]\+\)/\1:\3/"
答案 1 :(得分:1)
我的主张:
echo "At 12: 30 then" | sed "s/\([0-9]\+\)\s*:\s*\([0-9]\+\)/\1:\2/"
echo "At 12 : 30 then" | sed "s/\([0-9]\+\)\s*:\s*\([0-9]\+\)/\1:\2/"
答案 2 :(得分:0)
使用-E
(或GNU sed的-r
)可以避免使用反斜杠转义林:
$ sed -E 's/([0-9]+:) *([0-9]+)/\1\2/' <<< 'At 12: 30 then'
At 12:30 then