0

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

5.3.1-6.2011171513.ASMOS6

但我只需要解析出5.3.1-6该版本并将其存储在一个变量中。我怎样才能做到这一点?

4

2 回答 2

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

于 2013-03-08T14:58:14.520 回答
1

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

你可以做

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

仅将正则表达式捕获到变量中。

不幸的是,我不明白您遇到的问题5.3.1-6,您必须编辑您的问题以向我们展示您当前使用的正则表达式

IHTH

于 2013-03-08T15:01:57.863 回答