【发布时间】:2013-03-08 14:55:27
【问题描述】:
我运行命令grep 以获取特定输出并将其存储到变量中。 grep 命令的输出是:
5.3.1-6.2011171513.ASMOS6
但我只需要解析出5.3.1-6 并将该版本存储在一个变量中。我该怎么做?
【问题讨论】:
我运行命令grep 以获取特定输出并将其存储到变量中。 grep 命令的输出是:
5.3.1-6.2011171513.ASMOS6
但我只需要解析出5.3.1-6 并将该版本存储在一个变量中。我该怎么做?
【问题讨论】:
这个怎么样?
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 定义的分隔符。
【讨论】:
cut 或awk 更容易处理和理解。如果完成,您可以将问题标记为已回答。干杯!
sed 与regex (\\d)... 一起使用?
正如你所说的 linux,我假设你有一个支持 -o 选项的现代 grep。
你可以的
var=$(grep -o 'regex' file)
仅将正则表达式捕获到变量中。
很遗憾,我不明白您遇到的问题只是5.3.1-6,您必须编辑您的问题以向我们展示您当前使用的正则表达式。
IHTH
【讨论】: