删除逗号和冒号后跟或前面的单词不带数字

时间:2017-05-17 07:37:26

标签: sed

我想替换带有单词的冒号(:)和点(。),而不是数字 as:9:30无需删除     3.40无需删除    一个男孩:去上学 - 需要取出结肠    一个男孩:去学校 - 需要删除点

请让我知道如何编写sed命令来执行此操作

由于

2 个答案:

答案 0 :(得分:0)

Perl对救援的外观断言:

echo $'1:2\n1.2\na:b\na.b\n1:a\nb:2\nc.3\n4.d\na: b\nc. d' \
| perl -pe 's/(?<=\D)[.:](?=\D)//'
  • (?<=\D) =前面有非数字
  • (?=\D) =后跟非数字

对于

等情况,您的规范仍然不明确
2.
:3

答案 1 :(得分:0)

sed 方法:

s="9:30 a boy: goes to school 3.40 a boy. goes to school "
sed 's/\([A-Za-z]*\)[.:]\([[:space:]A-Za-z]\)/\1\2/g' <<< $s

输出:

9:30 a boy goes to school 3.40 a boy goes to school

[A-Za-z] - 匹配字母字符