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

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...