美文网首页
Linux OS awk命令使用

Linux OS awk命令使用

作者: 小米羊爱学术 | 来源:发表于2019-04-01 12:11 被阅读0次

awk命令使用方式

awk '{[pattern] action}' {filenames}   # 行匹配语句 awk '' 只能用单引号

log.txt

2 this is a test
3 Are you like awk
This's a test
10 There are orange,apple,mongo

用法一:简单输出

以空格为输入分隔符,输出第1和4列(注意,print后不加逗号就会使输出连在一起)

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk '{print $1 $4}' log.txt
2a
3like
This's
10orange,apple,mongo

以空格为输入分隔符,以空格为分隔符输出第1和4列

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk '{print $1,$4}' log.txt
2 a
3 like
This's
10 orange,apple,mongo

以空格为输入分隔符,以制表符为分隔符输出第1和4列 (\t前后加引号)

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk '{print $1"\t"$4}' log.txt
2       a
3       like
This's
10      orange,apple,mongo
用法一:设置输入分隔符 -F

逗号作为输入分隔符,以制表符为分隔符输出第1,3列

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk -F"," '{print $1"\t"$3}' log.txt
2 this is a test
3 Are you like awk
This's a test
10 There are orange     mongo

使用多个分隔符,先使用空格分割,然后对分割结果再使用","分割,以制表符为分隔符输出第1,5列

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk -F"[ ,]" '{print $1"\t"$5}' log.txt
2       test
3       awk
This's
10      apple
用法三、设置变量 -v
[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk -va=1 '{print $1,$1+a}' log.txt
2 3
3 4
This's 1
10 11
[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk -va=1 -vb="kk" '{print $1,$1+a,$1b}' log.txt
2 3 2kk
3 4 3kk
This's 1 This'skk
10 11 10kk
用法四、符合条件输出

输出第一列大于2的行

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk '$1>2' log.txt
3 Are you like awk
This's a test
10 There are orange,apple,mongo

输出第一列大于2并且第二列等于'Are'的行

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk '$1>2 && $2=="Are"' log.txt
3 Are you like awk

输出第一列大于2并且第二列等于'Are'的行的第一列

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk '$1>2 && $2=="Are" {print $1}' log.txt
3

运算符

运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ ~! 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ - 加,减
* / % 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员
用法五、关键词

关于awk脚本,我们需要注意两个关键词BEGIN和END。
BEGIN{ 这里面放的是执行前的语句 }
END {这里面放的是处理完所有的行后要执行的语句 }
{这里面放的是处理每一行时要执行的语句}
忽略大小写

[yangyang@izuf6btm1dq2w64mt5q889z practice]$ awk 'BEGIN{IGNORECASE=1} /this/' log.txt
2 this is a test
This's a test

相关文章

  • Linux OS awk命令使用

    awk命令使用方式 log.txt 2 this is a test3 Are you like awkThis'...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • awk命令

    下文来自:美团 吴孟达更多AWK命令请参考:Linux awk 命令扩展:linux sort,uniq,cut,...

  • Linux常用命令总结

    Linux一次执行多条命令:使用for awk 输出奇数行 awk '{if(FNR%2!=0) print FN...

  • Python执行常见的linux命令

    0. 概述 使用os.system(代表着linux命令的字符串)就能执行linux命令 因为linux多条命令可...

  • Linux | awk

    参考:http://www.runoob.com/linux/linux-comm-awk.html awk命令的...

  • Linux awk命令详解

    Linux awk命令详解 使用方法 调用awk 入门实例 1. 显示最近登录的5个帐号 awk工作流程是这样的:...

  • AWK 命令详解

    AWK 命令详解 除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk。...

  • Linux 学习笔记(十四):Linux 正则表达式基础

    grep 命令 作为linux中最为常用的三大文本(awk(Linux awk教程),sed(Linux sed教...

  • linux 系统简单加固

    linux 系统简单加固 账户配置 使用命令 awk -F: '($2=="")' /etc/shadow 查看空...

网友评论

      本文标题:Linux OS awk命令使用

      本文链接:https://www.haomeiwen.com/subject/gyymbqtx.html