awk工具的一个用例

line = 'awk'($0 !~ /^#/ && $7 ~ /^'"$2"'$/)
{print $1 ,$2,$3,$3,$4,$5,$6,$7,$8}' $srctree/boards.cfg;'

这段shell脚本实现的功能是,在$srctree/boards.cfg文件中逐行查找和表达式($0 !~ /^#/ && $7 ~ /^'"$2"'$/)中相匹配的行,如果找到就执行{}中的语句。awk未指定,则默认字段分隔符为空格

$0   :代表当前行
$n   :代表第n个字段(n>0)
!~    :表示不匹配
~     :表示匹配
/ /     :匹配代码段
^#    :以#为开头
abc$ :以abc结尾
^abc$:  字段为abc

所以这段脚本意思是:查找$srctree/boards.cfg文件中不以“#”开头的行,并且这一行的第七个字段必须和这个脚本文件传进的第2个参数匹配。如果条件成立,将这一行的第一个至第八个字段存放至line中。

小知识:

if [ str1 = str2 ]  当两个串有相同内容、长度时为真 
if [ str1 != str2 ]   当串str1和str2不等时为真 
if [ -n str1 ]     当串str1的长度大于0时为真(串非空) 
if [ -z str1 ]   当串str1的长度为0时为真(空串) 
if [ str1 ]    当串str1为非空时为真

shell 中利用 -n 来判定字符串非空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值