我刚开始使用正则表达式和sed,我遇到了以下问题:
echo "abc2def3ghi" | sed 's/^\(.*\)[0-9]\(.*\)$/"&" \1\2/i'
我希望删除第一个数字(在这种情况下为2,但可以是任何一个数字),但我得到以下结果:
"abc2def3ghi" abc2defghi
我将如何完成这项工作?
感谢。
答案 0 :(得分:2)
试试这个:
sed 's/[0-9]//1' file.txt
1
中的s///1
代表第N次出现
答案 1 :(得分:1)
sed
没有不情愿/非贪婪的量词,所以你必须特别匹配零个或多个非数字:
^\([^0-9]*\)[0-9]\(.*\)$