sed高级应用 、 awk基本用法

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/'

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值