awk 命令使用

截取符合条件的列

awk 先读取第一行后,再去处理数据

例子:
cut 不能截取分隔符为空格,tab之类的文件或字符串,但awk可以
[root@zabbix lianxi]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .5G 16G % /
devtmpfs .9G .9G % /dev
tmpfs .9G .9G % /dev/shm
tmpfs .9G 12M .9G % /run
tmpfs .9G .9G % /sys/fs/cgroup
/dev/sda1 1014M 189M 826M % /boot
tmpfs 378M 378M % /run/user/ [root@zabbix lianxi]# df -h | cut -d " " -f [root@zabbix lianxi]#
[root@zabbix lianxi]# awk '{printf $2 "\t" $6}' student.txt
Name AverageLiming .66Sc .66Gao 91.66[root@zabbix lianxi]# awk '{printf $2 "\t" $6\n}' student.txt
awk: cmd. line:: {printf $ "\t" $\n}
awk: cmd. line:: ^ backslash not last character on line
awk: cmd. line:: {printf $ "\t" $\n}
awk: cmd. line:: ^ syntax error
[root@zabbix lianxi]# awk '{printf $2 "\t" $6 "\n"}' student.txt
Name Average
Liming 87.66
Sc 85.66
Gao 91.66 ##############################################################################
解释:$ $ 代表文件的第2列和第6列,awk先读取文件的一行,并判断条件提取符合条件的信息,再读取下一行提取
$ 代表整行 [root@zabbix lianxi]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G .5G 16G % /
devtmpfs .9G .9G % /dev
tmpfs .9G .9G % /dev/shm
tmpfs .9G 12M .9G % /run
tmpfs .9G .9G % /sys/fs/cgroup
/dev/sda1 1014M 189M 826M % /boot
tmpfs 378M 378M % /run/user/
[root@zabbix lianxi]# df -h | awk '{printf $6 "\t" $2 "\n"}'
挂载点 容量
/ 17G
/dev .9G
/dev/shm .9G
/run .9G
/sys/fs/cgroup .9G
/boot 1014M
/run/user/ 378M [root@zabbix lianxi]# df -h | awk '{print $6 "\t" $2}'
挂载点 容量
/ 17G
/dev .9G
/dev/shm .9G
/run .9G
/sys/fs/cgroup .9G
/boot 1014M
/run/user/ 378M ############################################
print与printf的区别
print 默认行尾自动添加换行符,printf需要手动添加 [root@zabbix lianxi]# df -h | grep sda1
/dev/sda1 1014M 189M 826M % /boot
[root@zabbix lianxi]# df -h | grep sda1 | awk '{print $5}' | cut -d "%" -f ##################################
BEGIN [root@zabbix lianxi]# awk 'BEGIN {print "这是一个测试脚本"} {print $2 "\t" $6}' student.txt
这是一个测试脚本
Name Average
Liming 87.66
Sc 85.66
Gao 91.66 解释:只有满足了条件才能执行后面,也就是说先执行BEGIN语句后,再处理后面的数据。 ############################################
FS 内置变量
作用:指定分隔符 [root@zabbix lianxi]# awk '{FS=":"} {print $1 "\t" $3}' /etc/passwd
root:x:::root:/root:/bin/bash
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
chrony
apache
zabbix
mysql
user1
user2
user3 为什么第一行没有过滤?
因为:awk 先读取第一行后,再去处理数据
解决办法:再分隔符前添加BEGIN,这样先执行分隔符后,再读取第一行,并执行数据处理
注意:手工添加分隔符必须添加BEGIN [root@zabbix lianxi]# awk 'BEGIN {FS=":"} {print $1 "\t" $3}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
chrony
apache
zabbix
mysql
user1
user2
user3
[root@zabbix lianxi]# [root@zabbix lianxi]# awk 'BEGIN {FS=":"} {print $1 "\t" $3} END {print "aaaaaaaaa"}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
chrony
apache
zabbix
mysql
user1
user2
user3
aaaaaaaaa [root@zabbix lianxi]# awk 'BEGIN {print "开始执行"} BEGIN {FS=":"} {print $1 "\t" $3} END {print "结束了"}' /etc/passwd
开始执行
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
chrony
apache
zabbix
mysql
user1
user2
user3
结束了 ###################################################################
关系运算符 [root@zabbix lianxi]# cat student.txt | grep -v Name
Liming 87.66
Sc 85.66
Gao 91.66
[root@zabbix lianxi]# cat student.txt | grep -v Name | awk '$6 >=86 {print $2}'
Liming
Gao 解释:查看student.txt 文件,取出不含Name的行,如果第6列的数据大于等于86,则打印第2列数据

003-awk 命令使用的更多相关文章

  1. 使用 awk 命令统计文本

    2022-04-19 11:25:15.008,b4d13bfca8fe4b93a85e65a88520d945,LogScheduler#printLog,10ms,Y,xxxxxxxx 2022- ...

  2. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  3. awk命令详解

    搜索 纠正错误  添加实例 awk 文本和数据进行处理的编程语言 补充说明 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件 ...

  4. Linux安全基础:awk命令的使用

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  5. AWK命令学习

    使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...

  6. awk 命令

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  7. AWK命令的用法

    1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...

  8. [Linux] linux awk命令详解

    reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...

  9. awk命令简单介绍

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  10. Linux的awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

随机推荐

  1. C/C++题库

    1.下面的代码输出什么?为什么? void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6)?puts(“>6”):puts(“ ...

  2. @清晰掉 GNU C __attribute__

    __attribute__((packed))详解 1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有 ...

  3. linux系统/var目录的作用

    linux系统/var目录的作用 一.总结 一句话总结: 1.如果/usr是安装时会占用较大硬盘容量目录,那么/var就是在系统运行后才会渐渐占用硬盘容量的目录. 2.因为var目录主要针对常态性变动 ...

  4. 关于加快INSERT语句执行速度和HINT /*+ append */及/*+ append nologging */的使用

    (非归档模式下)创建表T01: SQL> create table t01 as select * from dba_objects where 1=2; Table created. (非归档 ...

  5. Vue知识整理11:列表渲染(v-for来实现)

    简单的v-for结构显示迭代数据 通过value别名 显示下面各个属性值 通过index 和key获取同类数组索引,或者不同属性的key属性名

  6. C#程序自动安装数字证书

    using System.Security.Cryptography.X509Certificates; MessageBox.Show("开始"); //添加个人证书 X509C ...

  7. Openstack_通用模块_Oslo_vmware 创建 vSS PortGroup

    目录 目录 vSS vSSPG vSphere SDK 中相关的网络对象 创建 vSS PortGroup vSS & vSSPG vSS(Standard vSwitch 标准交换机) 为在 ...

  8. Python Module_oslo.vmware_连接 vCenter

    目录 目录 前言 Install oslsvmware How to use the vSphere Web Service SDK 前言 oslo.vmware 是一个由 Python 实现的 vC ...

  9. MyEclipse中的查找快捷键

    MyEclipse中的查找快捷键 1.Ctrl+H:可以搜索文件,Java类名.方法名.包名等等. 例如:在MyEclipse中打开Search弹出框,或者在菜单中打开Search弹出框, 定位到 F ...

  10. 应用安全 - 无文件攻击 - Office漏洞 - 汇总

    CVE-2017-0199 Date: -1 类型: 弹窗|内网穿透导致远程代码执行 影响范围: Microsoft Office 2007 Service Pack 3 Microsoft Offi ...