Bash - 在字符串中查找子字符串

时间:2017-04-29 15:40:32

标签: bash

我是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 5515

我该怎么做?

2 个答案:

答案 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