awk笔记

awk笔记

awk其实是一门编程语言,它支持条件判断、数组、循环等功能。所以,我们也可以把awk理解成一个脚本语言解释器。

grep、sed、awk被称为Linux中的“三剑客”

grep:更适合单纯的查找或匹配文本

sed:更适合编辑匹配到文本

awk:更适合格式化文本,对文本进行较复杂格式处理

awk基础

基本语法:awk [options] ‘program’ file1 , file2 …

$

$num:标识第几列

$0:标识一整行

$NF:标识最后一列

注意:$1这种内置变量的外侧不能加入双引号,否则$1会被当做文本输入

awk’{print $1 $2}'表示每行分割后,将第一列(第一个字段)和第二列(第二个字段)连接在一起输出

awk’{print $1,$2}'表示每行分割后,将第一列(第一个字段)和第二列(第二个字段)以输出分隔符隔开后显示

BEGIN

BEGIN模式:指定了处理文本之前需要执行的操作

END

END模式:指定了处理完所有行之后所需要执行的操作

awk分隔符

FS:输入分隔符

输入分隔符,英文原文为field separator,此处简称为FS

输入分隔符,默认是空白字符(即空格),awk默认以空白字符为分隔符对每一行进行分割。

OFS:输出分割符

输出分割符,英文原文为output field separator,此处简称为OFS

awk将每行分割后,输出在屏幕上的时候,以什么字符作为分隔符,awk默认的输出分隔符也是空格。

awk变量

内置变量

FS:输入分隔符,默认为空白字符

OFS:输出字段分隔符,默认为空白字符

RS:输入记录分隔符(输入换行符),指定输入时的换行符

ORS:输出记录分隔符(输出换行符),输出时用指定符号代替换行符

NF:number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量

NR:行号,当前处理的文本的行号

FNR:各文件分别计数的行号

FILENAME:当前文件名

ARGC:命令行参数的个数

ARGV:数组,保存的是命令行所给定的各参数

自定义变量

方法一:-v varname=value 变量名区分字符大小写

方法二:在program中直接定义

awk格式化

printf

awk中使用printf动作注意点

  1. 使用printf动作输出的文本不会换行,如需要换行,可以在对应的“格式替换符”后加入“/n”进入转义
  2. 使用printf动作时,“指定的格式”与“被格式化的文本”之间,需要用“逗号”隔开
  3. 使用printf动作时,“格式”中的“格式替换符”必须与“被格式化的文本”一一对应

教程网址:https://www.zsythink.net/archives/1336

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值