如何grep文件中的特定模式

时间:2014-05-09 04:05:31

标签: linux shell awk grep

我有一个bash文件,其中包含下行以及其他行。

var BUILD_VERSION       = '2014.17.10_23';

我只想提取2014.17.10_23,这个值可能会发生变化,就像2014*的grep一样。但是,当我这样做时,我会返回整行而不是值2014.17.10_23

实现这一目标的最佳方式是什么?

由于

4 个答案:

答案 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