sed的导入导出
基本动作
- r动作应结合-i选项才会存入,否则只会输出
- w动作以覆盖的方式另存新文件
awk的基本用法
awk工具概述
命令格式解析
1,前置命令 | awk [选项] (条件)指令
2,awk 选项 (条件)指令 被处理文件
选项 -F 定义分隔符
指令 print 输出
awk '{print $1,$3}' test.txt #输出所有行第一三列
awk '{print $2,$0}' test.txt #输出所有行第二和所有列
awk -F: '{print $2}' user #定义:为分隔符输出所有行第二列
awk -F/ '{print $3}' user #定义/为分隔符输出所有行第三列
awk -F[:/] '{print $3}' user #定义:和/为分隔符输出所有行第三列
awk内置变量
awk '{print NR}' test.txt #输出 1 2 行数
awk '{print NF}' test.txt #输出 3 3 列数
awk -F: '{print $NF}' /etc/passwd #输出每行最后一个字段
ifconfig eth0 | awk '/RX p/{print $4,$5}' #找到网卡信息中接受的流量
ifconfig eth0 | awk '/RX p/{print "eth0网卡发送的流量是"$5"字 节"}' #awk可以加双引号输出流量
输出:eth0网卡发送的流量是691325字节
awk过滤的时机
awk过滤的时机
awk处理条件
使用数字或者字符串作为条件
== != >= <= < >
多条件组合
-&&逻辑与
-||逻辑或
运算符
---------------------
没有使用正则表达式时不需要//
==是运算符不是 字符串的==
扩展正则列表运用与多条件组合的运用
awk -F: '/^root|^adm/ {print $1,$3}' /etc/passwd
awk -F: '/^root/||/^adm/ {print $1,$3}' /etc/passwd
两个答案相同
第一个^root|^adm在一个正则表达式里,所以用扩展正则的|表示或者
第二个^root|^adm在两个正则表达式里,所以用多个条件组合的逻辑或||
---------------------------------------------------------------------------------------
如何根分区输出剩余容量是XXX
df -h |awk '/\/$/{print "根分区剩余的容量是"$4}'
找到对本机访问失败的ip地址
awk '/Failed/{print $11}' /var/log/secure
输出:
172.25.0.10
172.25.0.10
172.25.0.10
awk -F: '$1~/root/' user #统计第一列包含ROOT的行
awk -F: '$1!~/root/' user #统计第一列不包含ROOT的行
awk -F: '$3<=10' /etc/passwd #输出第3列小于等于10的行
列出100以内证书中7的倍数或者含7的数
seq 100 | awk '$1%7==0 || $1~/7/'