我运行命令grep
以获取某些输出并将其存储到变量中。 grep命令的输出是:
5.3.1-6.2011171513.ASMOS6
但我需要解析5.3.1-6
并将该版本存储在变量中。我怎么能这样做?
答案 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