我尝试提取连续数字,只有5个连续数字,我想删除所有字母,任何其他不连续数字的数字。
echo ajik84928ijs23d8ff89fj | sed 's/[^0-9]*//g' > answer.txt
echo ajik84928ijs23d8ff89fj | grep -E -o "[0-9]+"
echo ajik84928ijs23d8ff89fj| tr -d [a-z]
我只想要84928,但我只能得到8492823889,我搜索了很多帖子,但仍然是上面显示的最接近的答案,谢谢你的帮助。像sed,tr,grep,pearl这样的东西会有所帮助,谢谢!
答案 0 :(得分:2)
使用GNU sed:
echo ajik84928ijs23d8ff89fj | sed -r 's/.*([0-9]{5}).*/\1/'
使用GNU grep:
echo ajik84928ijs23d8ff89fj | grep -E -o "[0-9]{5}"
输出:
84928
答案 1 :(得分:0)
grep 仅匹配5位数字(不少于而不是更多)的方法:
echo "ajik84928ijs23d8ff89fj111111123" | grep -Po '(^|[^0-9])\K[0-9]{5}(?=[^0-9]|$)'
84928