2

我刚开始使用正则表达式和 sed,但遇到以下问题:

echo "abc2def3ghi" | sed 's/^\(.*\)[0-9]\(.*\)$/"&" \1\2/i'  

我希望删除第一个数字(在这种情况下为 2,但可以删除任何单个数字),但结果如下:

"abc2def3ghi" abc2defghi

我将如何实现这一目标?

谢谢。

4

2 回答 2

2

试试这个 :

sed 's/[0-9]//1' file.txt

1中的数字s///1代表第 N次出现

于 2013-03-27T23:22:14.717 回答
1

sed没有不情愿/非贪婪的量词,因此您必须专门匹配零个或多个非数字:

^\([^0-9]*\)[0-9]\(.*\)$
于 2013-03-27T23:23:16.873 回答