(day15)Linux三剑客之awk实践

语法格式

awk [参数]        ‘条件{动作}’        文本 ...

核心作用:

(1)取列

附加作用:

(1)删、查

【参数】

-F        指定字段分隔符

变量名属性
$n当前记录的第n个列,字段间由FS或-F参数指定分隔符
$0当前整行记录
NF当前记录中的列的个数,就是有多少列
$(NF-n)倒数第n列,n为数字
NR已经读出的记录数,就是行号,从1开始

默认分隔符是空格:第2列的00

11 00 22

第1列 用$1表示

第2列 用$2表示

第3列 用$3表示

练习:

(1)打印不同的列

[root@qulan ~]# echo 00 11 22 >a.txt 
[root@qulan ~]# cat a.txt 
00 11 22
[root@qulan ~]# awk '{print $1}' a.txt 
00
[root@qulan ~]# awk '{print $2}' a.txt 
11
[root@qulan ~]# awk '{print $3}' a.txt 
22

打印多列:

[root@qulan ~]# awk '{print $1,$2}' a.txt 
00 11

(2)打印行

(3)打印列

[root@qulan ~]# awk '{print $NF}' a.txt         #打印最后一列
22

[root@qulan ~]# awk '{print $(NF-1)}' a.txt         #打印倒数第二列
11

准备好测试文件,取passwd文件前五行

sed -n '1,5p' /etc/passwd > test.txt

问题1:取test.txt文件的第2行到第3行的内容

问题2:过滤出含有root字符串的行

问题3:删除含有root字符串的行

sed -i.bak '/root/d' test.txt

问题4:取文件的第一列、第三列和最后一列内容,并打印行号

问题5:取出Linux中执行ifconfig eth0后顶一顶的IP地址(只能输出IP地址)

取出两个 IP

多分隔符

练习:

1、用awk取stat /etc/hosts结果的644

先取行,再取列

带条件的awk:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值