我有一个bash文件,其中包含下行以及其他行。
var BUILD_VERSION = '2014.17.10_23';
我只想提取2014.17.10_23
,这个值可能会发生变化,就像2014*
的grep一样。但是,当我这样做时,我会返回整行而不是值2014.17.10_23
。
实现这一目标的最佳方式是什么?
由于
答案 0 :(得分:1)
使用awk
:
awk -F= '/BUILD_VERSION/{print $2}' input | tr -d "[' ;]"
使用sed
:
sed -n "/BUILD_VERSION/s/.*'\([^']*\)'.*/\1/p" input
答案 1 :(得分:1)
这是另一个awk
解决方案:
awk -F' = ' '/BUILD_VERSION/ {gsub(/\x27|;/,""); print $NF}'
答案 2 :(得分:0)
grep 'BUILD_VERSION' <your file> | sed -e 's/var BUILD_VERSION = //g'
会让你'2014.17.10_23';
调整sed表达式(或通过更多管道表达它来删除引号)。
这将是Perl中的1个正则表达式...
答案 3 :(得分:0)
您可以使用此awk
awk -F\' '/BUILD_VERSION/ {print $2}' file
2014.17.10_23