1

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

#define SIM_VERSION_COMPAT 1302

与 awk。所以我写道:

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

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

4

4 回答 4

3

无需使用 grep 和管道,您可以像这样使用 awk:

awk '/#define SIM_VERSION_COMPAT/{print $3}' global.h
于 2013-02-11T15:43:05.607 回答
1

只需使用grep

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

这使用正向查找来匹配包含#define SIM_VERSION_COMPAT但仅打印后面的数​​字字符串的行。

于 2013-02-11T15:47:05.863 回答
1
[spatel@tc01 ~]$ echo "#define SIM_VERSION_COMPAT 1302" | awk '{ print $3 }'
1302
于 2013-02-11T15:47:41.673 回答
1

您也可以使用 cut 命令

grep "#define SIM_VERSION_COMPAT" temp.txt | cut -d" " -f 3 
于 2013-02-12T02:40:02.947 回答