awk命令使用说明

查找
查找以ro.build.id=开头的行

1
awk '/^ro.build.id=/ {print $1}' build.prop   #在build.prop文件中查找

下面的例子实现了同样的效果,但是采用了变量的形式,用起来会更加灵活

1
2
prop_name=ro.build.id
awk -v identifier="${prop_name}=" '$0 ~ "^" identifier {print $1}' build.prop

分割字符
默认以空格为分隔符,比如:input | awk '{print \$1}'
可以通过-F参数指定分隔符,比如: input | awk -F "->" '{print $2}'

字符串替换

1
awk 'BEGIN { FS="SYSTEM/" } sub(/SYSTEM/,"system") {print $$2}'

实例:

1
zipinfo -1 target-V100R001C02B013SP06.zip | awk 'BEGIN { FS="SYSTEM/" } sub(/SYSTEM/,"system") {print $$2}'

查找SYSTEM/开头的字符串,并把SYSTEM替换为system后输出
或者:

1
zipinfo -1 /target-V100R001C02B013SP06.zip | awk '/^SYSTEM\// {print}' | awk 'sub(/SYSTEM/,"system")'

也能实现相同的效果

只输出最后一行

1
git log --pretty=format:"%H\ | awk 'NF{a=$0} END{print a}'