awk应用总结

样本集:

ussr    8649    275 asia

canada  3852    25  north america

china   3705    1032    asia

usa 3615    237 north america

brazil  3286    134 south america

india   1267    746 asia

mexico  762 78  north america

france  211 55  europe

 

 

awk中如果多条语句要写在同一行,需要在语句之间添加分号。

如果是在命令行输入的awk语句,那么后边一定是单引号,不能是双引号。

要能看懂awk的报错。

如果awk程序过多,可以从文件读入awk程序。awk -f awk_file filename

 

cat /etc/group| awk -F: '{ print $1;print $2}' 。awk中以分号分隔的是两条语句,这种输出结果是先输出第一行的第一个字段,换行,然后输出第一行的第二个字段。

如果是{ print $1, $2},会在一行内把两个字段依次输出。如果要在两个字段中间加分隔,只需如下:

cat /etc/group| awk -F: '{ print $1"# "$2}'。在两个字段之间添加双引号,引号引起来的部分就是分隔符。引号和两个字段之间不加逗号,结果会紧密相连:

        

        如果在引号和两边的两个字段之间添加了逗号,那么两个字段与#之间会添加一个空格,不可添加两个逗号。结果如下:

        

awk中分为模式和动作。模式就是条件,是用来匹配的。模式和动作都需要用单引号括起来,此外,动作需要用{}括起来。模式和匹配之间没有分隔符,但是可以有空格。如下:

cat sample |awk '$2<10*$3 { print}',就会把符合模式的整行打印出来。这里的print后边没有跟变量,表示打印整行,$0也是打印整行。

 

将表达式用作模式:

        在关系比较中,如果两个操作数都是数值,才会按照数值的方式比对。如果有一个字符串,就会按照字符串的方式比较

比较运算符有 <、<=,>、>=、!=、==、        

 

字符串匹配模式:

1、/regexpr/,当文档中有语句被这个正则表达式匹配,则选中。不能用双引号。

2、expression ~ /regexpr/,当expression符合右边的正则表达式的时候,选中。expression 通常是字段值。比如: $4~/asia/。这样就把整个句子包含某一个单词缩小到某一个字段包含某一个单词。

3、expression !~/regexpr/,当 expression不符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值