sed和awk操作

sed基本用法
语法格式: sed [选项] ‘条件指令’ 文件名
选项:
-n 静默输出,屏蔽默认输出
-r 让sed支持扩展正则
-i 直接修改源文件
sed 指令
p 输出条件匹配的行
d 删除
s 替换
a 追加
i 插入
c 更改

实例:

cat  test.txt
abcd
abcded
1234
123456
aaaa
bbbb
cccc
dddd

在这里插入图片描述
#1,3 表示1到3行
在这里插入图片描述
#1~2 表示从第一行开始,每隔两行输出一次
在这里插入图片描述
#2,+3 表示从第二行开始往后加三行

awk基本操作

语法格式: awk [选项] ‘[条件{指令}]’ 文件
其中print是最常用的编辑指令;如果有多条指令用分号区隔。
处理文本时,如果未指定分隔符,则默认将空格、制表符作为分隔符
-F 选项,可指定分隔符

awk  -F:  '{print  $1,$7}' /etc/passwd
打印用户和shell登陆版本
df -h | awk '{print $4}'
打印磁盘剩余空间

awk常用内置变量
$0 文本当前行的全部内容
$1 文本的第一列,(依次类推)
NR 文件当前行的行号
NF 文件当前行的列数(有几列)

awk  -F [:/] '{print NR,NF}' /etc/passwd
查看几行几列

在这里插入图片描述

RX  是接收的数据量,TX是发送的数据量
packets  以数据包为单位,bytes以字节为单位
# ifconfig  eno16777736 | awk '/RX p/{print $5}'
#df -h / | tail -1 | awk '{print $4}'
提取根分区剩余容量
#df -h | awk '/\/$/{print $4}'
也可。
#awk  ’/Failed/{print $11}‘ /var/log/secure
根据/var/log/secure/日志文件,过滤远程连接密码失败的ip地址

格式化输出/etc/passwd文件
awk处理的时机
awk会逐行处理文本,支持在处理第一行之前做一些准备工作以及在处理结束后做总结性的工作
格式: awk [选项] ’BEGIN{指令}{指令} END{指令}‘ 文件
*BEGIN{} 行前处理,读取文件内容之前执行,执行一次
*{} 逐行处理,读取文件过程中执行,执行n次
*END{} 行后处理,读取文件结束后执行,执行一次

例子:
统计系统中作为bash登陆的shell的用户的总数
思路:首先预处理赋值变量 x=0
然后逐行读入/etc/passwd文件,如果发现shell是/bin/bash,x+1
最后全部结束后,输出x值

awk  'BEGIN{x=0}/bash$/{x++}END{print x}' /etc/passwd
#seq 100 | awk '$1%7==0'
100以内7的倍数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱音乐的哒哒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值