Linux 高级命令sed和awk

Linux 高级命令sed和awk

sed

1、 sed命令:行操作命令,一次处理一行数据,默认情况下不改变原始行。适合于处理大型文件。
2、 语法:sed 选型 ‘sed命令’ 文件名
sed ‘s/root/ROOT/g’ pp.txt
选项:-e同时操作多项
sed -e ‘s/root/ROOT/g’ -e ‘s/bash/BASH/g’ pp.txt
3、 sed命令
d删除
sed ‘1d’ pp.txt
sed ‘1,6d’ pp.txt
sed ‘3,10d’ pp.txt
sed '4, d ′ p p . t x t s e d ‘ d' pp.txt sed ‘ dpp.txtsedd’ pp.txt
sed ‘/halt/d’ pp.txt
sed ‘/^$/d’ pp.txt
s查找替换
sed ‘s/games/YOUXI/’ pp.txt
sed ‘s/games/YOUXI/2’ pp.txt
sed ‘s/games/YOUXI/g’ pp.txt
sed ‘7s/games/YOUXI/’ pp.txt
sed ‘7s/games/YOUXI/2’ pp.txt
sed ‘7s/games/YOUXI/g’ pp.txt

ifconfig ens32|sed -n ‘/inet/p’|sed ‘2d’|sed ‘s/^.inet//’|sed 's/netmask. / / ′ i f c o n f i g e n s 32 ∣ s e d − n ′ / i n e t / p ′ ∣ s e d ′ 2 d ′ ∣ s e d ′ s / . ∗ i n e t / I P A d d r e s s : / ′ ∣ s e d ′ s / n e t m a s k . ∗ //' ifconfig ens32|sed -n '/inet/p'|sed '2d'|sed 's/^.*inet/IPAddress:/'|sed 's/netmask.* //ifconfigens32sedn/inet/psed2dseds/.inet/IPAddress:/seds/netmask.//’

y字符转换
sed ‘y/987/NYE/’ pp.txt
i插入文本
sed ‘2 i 123123123123’ pp.txt
ifconfig ens32|sed -n ‘/inet/p’|sed ‘2d’|sed ‘s/^.inet//’|sed 's/netmask.$//’|awk ‘{print $1}’|sed ‘1 i IPAddress:’
a追加文本
sed ‘2 a 123123123123’ pp.txt

sed ‘/<games>/i918234913491347’ pp.txt
sed ‘/<games>/a918234913491347’ pp.txt
sed ‘/<games>/a123\n123\n123\n’ pp.txt
c取代
sed ‘2c aaaaaaaaaaaaaaaa’ pp.txt
sed ‘1,9c aaaaaaaaaaaaaaaa’ pp.txt
sed ‘/dbus/c 1782396192346192’ pp.txt
r读取
sed ‘10r /etc/shadow’ pp.txt
sed ‘/9dbus/r /etc/hosts’ pp.txt
p显示,挂n
sed -n ‘2p’ pp.txt
sed -n ‘/games/p’ pp.txt
sed -n ‘/[A-Z]/p’ pp.txt
选项f调用脚本
cat pp.rule
s/bus/BUS/g
11d
/^$/d
sed -f pp.rule pp.txt
选型i直接修改原文件
sed -i ‘s/bus/BUS/g’ pp.txt

awk使用手册

数据处理工具,基于列为操作单位,行视为一条记录,列称为记录的字段,awk抽取列信息。自定义变量,也可以在内部条件判断、循环结构、数组、正则等,awk自成体系。
awk默认是空格作为分隔符,形成字段,也称为域,从左到右,称为第一个域$1,第二个域$2,以此类推。$0表示全部域。

1、	执行操作
awk 选项 ‘awk命令’ 文件
2、	直接执行、脚本、写入到文件里。
3、	正则表达式
awk '/^[a-z]/' pp.txt
布尔表达式
awk '$1 < 5 {print $1,$2}' kk.txt
awk '($2 > 10) && ($2 < 200) {print $1,$2,$3}' kk.txt
awk '($2 > 10) && ($2 < 200) {print $1+$2}' kk.txt
4、	列操作
awk -F: '($3 == 0) {print $1,$3}' /etc/passwd
awk -F: '($3 == 0) {print $1,$3,$7}' /etc/passwd

awk -F: '($3 == 0) {print $1","$3","$7}' /etc/passwd
awk -F: '($3 == 0) {print $1    "\t"$3 "\t"    $7}' /etc/passwd

awk -F: '/^root/ {print $1,$3,$7}' /etc/passwd
awk -F: '($3 > 0) && ($3 < 1000 )  {print $1,$3,$7}' /etc/passwd
查看系统用户
awk -F: '($3 == 0) || ($3 > 1000 )  {print $1,$3,$7}' /etc/passwd
查看可以登录的用户
awk -F: '($3 == 0)   {print $1,$3,$7}' /etc/passwd
查看超级权限用户
awk -F: 'NR==23,NR==33 {print $1,$3,$7}' /etc/passwd

思考:提取网卡、IP、子网掩码、默认网关
ifconfig|grep -B1 '\<inet\>'|awk '{print $1,$2}'|awk -F: '{print $1}'|sed 's/inet//g'
route -n|awk '/^(0.0.0.0)/ {print $2 }'

暂时简陋版,后期在附图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值