Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经工作了几个小时来研究如何为 bash 脚本编写一个正则表达式,该脚本只能抓取一组超过 2 个数字。例如,如果我有#jk2478_0.JPEG,我只想返回 2478。我可以返回所有的数字,但不知道如何在这个例子的结果中不包含 0。这是我到目前为止所拥有的。
i='#jk2478_0.JPEG'; f=`echo $i | sed s/[^0-9]*[^0-9]//g` echo $f #24780
$ echo '#jk2478_0.JPEG,' | grep -E -o '[0-9]{2,}' 2478
-o表示仅匹配
-o
使用 sed 的其他方式
echo '#jk2478_0.JPEG,' | sed -re 's/(.*)([a-zA-Z]+)([0-9]+)(.*)/\3/'
也许这个?
f=`echo $i | sed s/.*([0-9]\{2,\}.*/\1/`