我是bash的新手。我有java和python的经验,但没有bash的经验所以我正在努力完成最简单的任务。
我想要实现的是我想查看字符串并查找某些子字符串,确切地说是数字。但并非所有数字都只是数字后跟“xyz”。例如:
string="Blah blah boom boom 14 xyz foo bar 12 foo boom 55 XyZ hue hue 15 xyzlkj 45hh."
我想找点数字:
14
55
和15
我该怎么做?
答案 0 :(得分:2)
您可以使用前瞻
的grep
echo "$string" | grep -i -P -o '[0-9]+(?= xyz)'
说明:
-i
- 忽略大小写-P
- 将模式解释为Perl正则表达式-o
- 仅打印匹配[0-9]+(?= xyz)
- 匹配一个或多个数字,后跟xyz
有关详细信息,请参阅:
答案 1 :(得分:0)
grep + 剪切 方法(不使用 PCRE ):
echo $string | grep -io '[0-9]* xyz' | cut -d ' ' -f1
输出:
14
55
15