我想grep一个文件并提取该行的第三部分
#define SIM_VERSION_COMPAT 1302
用awk。所以我写道:
grep "#define SIM_VERSION_COMPAT" global.h | awk '{ print $$3 }'
结果应该是1302,但我什么都没得到(空白)。
答案 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