文本处理工具之AWK语法基本使用方法(一)

一:AWK简介
awk是一种报告生成器,格式化文本输出工具,他有多种版本,现在常用的是gawk
man手册查看:
在这里插入图片描述

awk和sed的区别:
区别戳我
1:awk可以人为规定行的分隔符,而不是像sed一样一个回车为一行
2:如果文件是格式化的,即由分隔符分为多个域的,优先使用awk
3:awk适合按列(域)操作,sed适合按行操作
4:awk适合对文件的抽取整理,sed适合对文件的编辑

二:AWK的执行原理
在这里插入图片描述
三:awk基本用法
AWK程序,通常由三个部分组成,其中最重要的部分是pattern{action}部分,它是program的重要组成,对文件进行处理时,可以没有begin和end,但一定要有pattern{action}部分,或者只有pattern{action}和end两部分
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意:awk中的域标识是从$1开始的,虽然shell里面也有$0,$1这些,但是这是两个不同概念哈

实例演示:
如果不指定需要处理的文件,则会等待输入内容进行处理
在这里插入图片描述
指定了需要处理的文件,若没有pattern部分,则会扫描该文件中每一行内容并进行处理后打印出来
在这里插入图片描述
添加了BEGIN语句块,则会在文件被读入之前就会被执行的动作,因此不依赖于文件,只打印出action部分
在这里插入图片描述
利用-F指定字段分隔符为:,取出/etc/passwd中的第一个和第三个字段并用-的形式表示
注意:其中$1"-"$3 中的"-" 在awk中是必须的,字符串必须用"双引号引起来,也可以用其他字符串形式表示,或者直接用逗号隔开,用逗号隔开时默认是以空格为分隔符的
在这里插入图片描述
回顾一下,也可以用cut方式达到一样的效果
其中 -d 指定分隔符 -f 是指定第几列
在这里插入图片描述
awk默认是以空格为分隔符,且多个空格默认是一个
在这里插入图片描述
四:AWK变量的使用
-v 选项在上面提到过,-v var=value:用来自定义变量
在这里插入图片描述
实例演示:
利用AWK变量的方式实现取出/etc/passwd中第一个和第五个字段的内容
使用FS变量的好处在于,可以在后面的代码中调用,使得取出来的内容按照FS变量定义的分隔符形式输出,更灵活 ,而不用自己手动指定(或逗号隔开默认是空格为分隔符)
FS–(filed 字段 s-变量名)
在这里插入图片描述
OFS:输出字段分隔符–(out)
在这里插入图片描述
RS:输入记录(行)的分隔符,指定输入时的分隔符 (Row-行)
下图中,指定了;为行的分隔符,且取每一行的第一个字段
在这里插入图片描述
ORS:输出记录分隔符,将每一行不再按换行进行输出,而以+++形式输出
在这里插入图片描述
NF:字段数量
在这里插入图片描述
NR:记录(行)号
若有多个文件,则会将多个文件放在一起,顺序将每行编号
在这里插入图片描述
在这里插入图片描述
FNR:多个文件分别进行编号计数
在这里插入图片描述
FILENMAE:当前文件名
在这里插入图片描述
ARGC:统计命令行awk后面参数的个数
在这里插入图片描述

ARGV[ ]:查看命令行所给定的各参数 注意:[0]代表第一个参数,[1]代表第二个参数。。。。。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值