用awk提取文本

时间:2013-02-11 15:39:49

标签: linux awk grep

我想grep一个文件并提取该行的第三部分

#define SIM_VERSION_COMPAT 1302

用awk。所以我写道:

grep "#define SIM_VERSION_COMPAT" global.h | awk '{ print $$3 }'

结果应该是1302,但我什么都没得到(空白)。

4 个答案:

答案 0 :(得分:3)

不需要使用grep和pipe你可以像这样使用awk:

awk '/#define SIM_VERSION_COMPAT/{print $3}' global.h

答案 1 :(得分:1)

只需使用grep

$ grep -Po '(?<=#define SIM_VERSION_COMPAT )[0-9]+' global.h
1302

这使用positive lookbehind来匹配包含#define SIM_VERSION_COMPAT的行,但仅打印后面的数​​字字符串。

答案 2 :(得分:1)

[spatel@tc01 ~]$ echo "#define SIM_VERSION_COMPAT 1302" | awk '{ print $3 }'
1302

答案 3 :(得分:1)

您也可以使用剪切命令

grep "#define SIM_VERSION_COMPAT" temp.txt | cut -d" " -f 3