Linux-awk

目录

awk基本概念: 

语法格式

核心作用:

附加作用:

【参数】

入门练习:

参数练习:

-F案例:

练习题:


一、awk基本概念: 

awk是一门编程语言,善于处理大量文本。

1、语法格式

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

2、核心作用:

1)取列

3、附加作用:

删、查

4、【参数】

-F指定字段分隔符

-v

定义或修改一个awk内部的变量

变量名 属性

$n

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

  

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

11 00 22

第1列:$1

第2列:$2

二、入门练习:

1、打印a.txt中的第2列:

2、打印多列

3、打印整行记录

4、打印最后一列

5、打印倒数第2列

三、参数练习:

1、-F案例:

1、取出test.txt中的第1列

2、取出第1列和最后一列,并显示有多少列

四、练习题:

首先准备好测试文件,取passwd文件前5行

sed -n '1,5p' /etc/passwd >test.txt
1、取test.txt文件的第2行到第3行的内容。(提示:如果只取某一行,就用awk 'NR==2' test.txt)
方法一:
方法二:
方法三:(并打印行号)
2、过滤出含有root字符串的行
3、删除含有root字符串的行
4、取文件的第1列、第3列和最后1列的内容,并打印行号
5、取出Linux中执行ifconfig ens33后对应的IP地址(只能输出ip地址)
     这将使用awk命令来查找带有 "inet " 开头的行,并打印第二个字段,即IP地址

sed方法:

五、多个连续分隔符

案例一:

案例二、

案例三、(先取行,在取列)

例题1:过滤文件中第一列内容匹配root的字符串,把符合的行的最后一列输出。

解答:这道题在过滤日志信息的时候常用,示例如下。

例题2:过滤下列test1.txt文件中第三列内容分数大于70,并且小于95的人名和性别。

张三 男 80

李四 女 70

王五 男 90

赵六 女 100

六、带条件的awk深入知识与实践

行的条件

stat /etc/hosts|awk -F 'NR==4'  #取第4行
[root@ql ~]# stat /etc/hosts|awk -F "[0/]" 'NR==4 {print $2}' #取第4行的第2列

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值