RegEx在shell脚本中获取输出字符串的模式

时间:2013-03-08 14:55:27

标签: regex grep

我运行命令grep以获取某些输出并将其存储到变量中。 grep命令的输出是:

5.3.1-6.2011171513.ASMOS6

但我需要解析5.3.1-6并将该版本存储在变量中。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

这个怎么样?

TEXT=5.3.1-6.2011171513.ASMOS6
RES=$(echo $TEXT | cut -d. -f-3)

我们cut .上的字符串,然后获得前3个。

使用 awk

RES=$(echo $TEXT | awk -F. 'OFS=FS {print $1,$2,$3}')

OFS=FS表示我们获得了使用-F定义的分隔符。

答案 1 :(得分:1)

当你标记说linux时,我会假设你有一个支持-o选项的现代grep。

你可以做到

var=$(grep -o 'regex' file)

仅捕获变量的正则表达式。

很遗憾,我不明白您只是5.3.1-6遇到的问题,您必须将问题编辑为向我们展示您当前正在使用的正则表达式

IHTH