sed和awk的练习
admin
2023-05-12 03:41:13
0

使用sed打印出IP地址:

[root@Srv02 ~]# ifconfig eth0 |grep Mask|sed 's/^.*dr://g'|sed 's/Bc.*$//g'
192.168.1.223
[root@Srv02 ~]# ifconfig eth0 |grep Mask|sed -n 's/^.*dr:\(.*\)Bc.*$/\1/gp'
192.168.1.223

 

awk打印IP:

[root@Srv02 ~]# ifconfig eth0 |grep Mask|awk '{print $2}'|awk -F: '{print $2}'
192.168.1.223

 

[root@Srv02 ~]# ifconfig eth0 |grep Mask|awk -F[:\ ] '{print $13}'
192.168.1.223

使用awk内部变量的方式指定分隔符:

[root@Srv02 ~]# ifconfig eth0|grep Mask|awk 'BEGIN{FS="[:\\ ]"}{print $13}'
192.168.1.223

打印/etc/passwd文件内,$1为weblogic和tomcat的两行(使用判断语句):

[root@Srv02 ~]# more /etc/passwd|awk -F: '{if ($1=="weblogic" || $1=="tomcat" ) print $0}'
weblogic:x:501:503::/home/weblogic:/bin/bash
tomcat:x:502:504::/home/tomcat:/bin/bash

这里使用~也是一样的效果:

[root@Srv02 ~]# more /etc/passwd|awk -F: '{if ($1~"weblogic" || $1~"tomcat" ) print $0}'
weblogic:x:501:503::/home/weblogic:/bin/bash
tomcat:x:502:504::/home/tomcat:/bin/bash

如果$1为变量name的值,就整行输出:

[root@Srv02 ~]# more /etc/passwd|awk -F: 'BEGIN{name="oracle"}{if($1~name)print $0}'
oracle:x:500:500::/home/oracle:/bin/bash

awk内部变量的介绍:

NF:表示有多少列。

$NF:表示最后一列。

NR:表示行号。

ORS:输出记录分割符

OFS:输出字段分割符

RS: 记录分割符

[root@Srv02 ~]# tail -4 /etc/passwd
oracle:x:500:500::/home/oracle:/bin/bash
weblogic:x:501:503::/home/weblogic:/bin/bash
tomcat:x:502:504::/home/tomcat:/bin/bash
nx:x:102:158::/usr/NX/home/nx:/usr/NX/bin/nxserver
[root@Srv02 ~]# tail -4 /etc/passwd | awk '{print NF}'
1
1
1
1
[root@Srv02 ~]# tail -4 /etc/passwd | awk -F: '{print NF}'
7
7
7
7
[root@Srv02 ~]# tail -4 /etc/passwd | awk -F: '{print $NF}'
/bin/bash
/bin/bash
/bin/bash
/usr/NX/bin/nxserver

使用awk打印端口号:

[root@Srv02 ~]# netstat -ntl |awk '{if($4~"[0-9]$") print $4}'|awk -F: '{print $NF}'
8001
8005
8009
33801
.....

使打印输出显示行号:

[root@Srv02 ~]# awk -F: '{print NR,$1}' /etc/passwd
1 root
2 bin
3 daemon
4 adm
5 lp
6 sync

显示$1为oracle的这一行的行号:

[root@Srv02 ~]# more /etc/passwd |awk -F: '{if ($1~"oracle") print NR}'
39

输出时以###作为字段分隔符:

[root@Srv02 ~]# tail -4 /etc/passwd |awk -F: 'BEGIN {OFS="###"}{print $1,$7,$3}'
oracle###/bin/bash###500
weblogic###/bin/bash###501
tomcat###/bin/bash###502
nx###/usr/NX/bin/nxserver###102

相关内容

热门资讯

打造AI影像协作实验场 上影节... 上海国际电影节全新单元“AI片场”开机 打造AI影像协作实验场 “我做AI电影已经两年了。”德国AI...
我国首次成功批量克隆超高产奶山... 西北农林科技大学14日向新华社记者独家披露,学校羊遗传改良与生物育种创新团队攻克关键核心技术,6只超...
医学院硕博研究生靠虚开发票冒签... 33岁的柴某系江苏人,案发前系某医院博士后研究人员。一审法院认定,2018年至2023年,柴某在某医...
京东618自营电脑桌椅服务升级... 随着京东心动购物季开启,职场人、居家办公族及电竞爱好者的“久坐刚需”升级需求集中释放,电脑桌椅品类迎...
扎波罗热核电站遭乌军袭击,两名... 当地时间5月14日,扎波罗热核电站官方通报称,乌克兰武装部队的无人机对核电站周边区域发动袭击。在距离...
储殷:“建设性稳定关系”涵盖了... 特朗普率高规格代表团访华,中方也是高规格接待。中美今天的互动总体呈现出什么特点?这次元首外交又将如何...
中科信息称目前没有研发具身机器... 瑞财经 严明会 5月13日,中科信息在路演活动中表示,公司目前没有研发具身机器人,现有机器人主要面向...
按下物理AI加速键!香港成全球... 近日,首届香港具身智能产业峰会暨智元APC2026(香港)召开,标志着具身智能从技术炫技正式转向生产...
内塔尼亚胡称将对《纽约时报》提... 新华社耶路撒冷5月14日电(记者庞昕熠 冯国芮)以色列总理办公室14日发表声明称,由于美国《纽约时报...
黄仁勋最后一刻从“局外人”变“... 黄仁勋在最后一刻登上飞往北京的总统专机,从原本的“局外人”瞬间变成“座上宾”。这段场景的背后到底有哪...