awk命令

awk [选项] '条件1{动作1} 条件2{动作2}...' 文件名

条件(Pattern)
*) 一般使用关系表达式作为条件
*) x>10 判断变量x是否大于10
*) x>=10 大于等于
*) x<=10 小于等于
动作(Action)
*)格式化输出
*)流程控制语句
awk 默认使用空格或制表符(Tab)作为分割符
awk 一次处理一行内容
awk 可以对每行进行切片处理 $awk '{printf $1}' 输出首个字段

awk的内置参数

$0
表示整个当前行
$1
表示每行第一个字段
$2
表示每行第二个字段
...

awk自定义分隔符

awk分隔符
使用-f进行设定
awk -F ':' '{print $3}' /etc/passwd  使用":"作为分割符
awk -F ':' '{print $1,$3}' /etc/passwd 多个字段之间用,分割
awk -F ':' '{print $1" "$3}' /etc/passwd 多个之间用空格分割

awk内置参数NR,NF,FILENAME

NR 每行记录号 行号
NF 每行字段数 列号
FILENAME 正在处理的文件名
[root@ssgao1987 ~]# ll | awk '{print NR,NF}'
1 2
2 9
3 9
[root@ssgao1987 ~]# ll | awk '{print FILENAME}'

awk 执行条件

awk [选项] '条件1{动作1} 条件2{动作2}...' 文件名
条件(Pattern)
*) 一般使用关系表达式作为条件
*) x>10 判断变量x是否大于10
*) x>=10 大于等于
*) x<=10 小于等于
动作(Action)
*)格式化输出
*)流程控制语句

awk条件使用逻辑判断式

~,!~ 匹配正则表达式
==,!=,<,>: 判断逻辑表达式
awk逻辑判断实例
[root@ssgao1987 ~]# ll
总用量 52
-rw-r--r--. 1 root root     0 7月  15 05:51 ls.log
drwxr-xr-x. 2 root root  4096 7月  19 08:27 redis
-rwxr--r--. 1 root root    86 7月  15 01:28 shell_01.sh
drwxr-xr-x. 2 root root  4096 7月  15 06:55 ssgao
[root@ssgao1987 ~]# ll | awk '$9~/ssgao/{print $9}' (条件判断式:$9~/ssgao/)
ssgao
[root@ssgao1987 ~]# ll | awk '$7>20 {print $0}'
-rw-r--r--. 1 root root   277 7月  30 17:11 df.log
-rw-r--r--. 1 root root   493 7月  30 17:28 eth0.log

awk扩展格式BEGIN,END

awk [options] 'condition {command}' file
扩展
BEGIN{print "begin"} pattern {commands} END {print "end"}
awk是读一行处理一行,处理是在commands中完成
BEGIN是在读行之前进行操作的,相当于初始化
END所有行执行后完成的
[root@ssgao1987 ~]# awk -F ":" 'BEGIN{print "LINE CLO USER"}{print NR" "NF" "$1}END{print"----"FILENAME"----"}' /etc/passwd
LINE CLO USER
1 7 root
2 7 bin
3 7 daemon
----/etc/passwd---- 求和运算
[root@ssgao1987 ~]# ll | awk 'BEGIN{size=0}{size+=$5}END{print "SIZE is:" size }'
SIZE is:28340 判断passwd文件中非空用户数
awk -F ":" 'BEGIN{count=0}$1!~/^$/{count++}END{print "count =" count}' passwd 判断passwd文件中UID大于100
awk -F ":" 'BEGIN{count=0}{if($3>100) name[count++]=$1}END{for (i=0;i<count;i++) print i,name[i]}' passwd

linux常用命令 awk命令的更多相关文章

  1. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  2. Linux 常用的压缩命令有 gzip 和 zip

    Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...

  3. Linux常用的基础命令总结

    man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...

  4. Linux三剑客之awk命令详解

    一.awk介绍 AWK是一种优良的文本处理工具.它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho .Pet ...

  5. LINUX常用配置及命令

    一.   Fedora系统配置 1.      [设置网卡IP] 步骤如下: 1)     用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...

  6. Linux学习之awk命令

    一. AWK 说明    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能 ...

  7. 【Linux基础】awk命令

    1.awk命令说明 (1)awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 (2)awk处理过程:  依次对每一行进行处理,然后输出 ...

  8. Java线上问题排查思路及Linux常用问题分析命令学习

    前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...

  9. Linux Shell编程 awk命令

    概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是l ...

随机推荐

  1. axios请求

    axios.get('/user?ID=12345') .then(function (response) { console.log(response); console.log(response. ...

  2. WSDL文档

    portType 相当于一个类. operation 相当于该类里有一个方法名,方法名为processAPNManagement,该方法里有一个输入消息,一个输出消息,一个错误消息.

  3. Gym - 100637J

    On the most perfect of all planets i1c5l various numeral systems are being used during programming c ...

  4. ubuntu Fcitx 输入法 选择 黑框问题 解决方案

    在虚拟机装了个xubuntu,弄好fcitx 输入法后,打字时看不到选择框,被黑框折腾的不行,后来了一个方法,暂时解决了问题. 用 killall fcitx-qimpanel 结束 fcitx-qi ...

  5. FL Studio中音频ASIO4ALL的设置

    上期我们讲解了FL Studio中音频的相关设置,今天我们来进一步讲解音频设置中的ASIO4ALL的设置,FL Studio安装包括FL Studio ASIO和第三方ASIO驱动程序ASIO4ALL ...

  6. Xcode9,cocoaPod执行pod install时报错,一行命令即可解决。

  7. 清除本地SVN信息

    C:\Documents and Settings\yangxf\Application Data\Subversion\auth 这个目录下删除svn文件夹即可

  8. Java中的抽象

    什么是抽象类? 如果一个类没有足够的信息去描述一个具体的对象,那么这样的类我们就称它为抽象类.这很好理解,就如同动物是一个很广泛的概念,由于在动物这个类里,我们无法用很详细的信息去描述狗狗这个具体的对 ...

  9. SQLAlchemy中解决数据库访问时出现的Incorrect string value: xxx at row 484

    报错信息:Warning: (1366, "Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...‘ for column ‘V ...

  10. JXOJ(基于UOJ)部署日志

    JXOJ部署日志 前些日子协助cyc.llf两位奆老部署了JXOJ,为方便日后维护我校OJ的同学,写篇日志做记录以日后查看. 一.准备: ​ 在尝试了多个不同OJ之后,我们最终选择了Universal ...