linux-awk基础应用

本文详细介绍awk命令的强大功能,包括默认及指定分隔符处理、函数使用、变量设置、条件筛选、格式化输出、过滤操作等,助您快速掌握awk文本处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.zsythink.net/archives/tag/awk/ 强大的awk学习来源
awk 依次处理文件的每一行
【1】默认按照空格或制表符分隔

//输出全部
awk '{print $0 }' filename
//输出指定列,比如第一列
awk '{print $1}' filename
//输出指定列,比如最后一列
awk '{print $NF}' failename 

【2】指定分隔符

//按照';'分割所有行的第一个字段
awk -F ':' '{print $1}' filename
//或
awk 'BEGIN{FS=":"} {print $1}' filename

【5】函数

//将每一行第一个字段转成大写
awk '{print toupper($1)}' filename   
//将第一行每一个字段转成小写
awk '{print tolower($1) filename
// 返回字符串长度
awk '{print length($1)}' filename
//

【6】设置变量
‘awk -v’

//第一个字段每个数加1
awk -vc=1 '{print $1+c}' filename

【8】条件

//输出包含192的每一行的第一个字段
awk '/192/ {print $1}' filename
//输出同时满足包含192 以及是奇数列的第一个字段
awk '/192/ && NR%2 == 1 {print $1}' filename
//输出满足包含192 或是奇数列的第一个字段
awk '/192/ || NR%2 == 1 {print $1}'

【9】格式化输出

//格式化输出第一个字段到底8个字段,用print
awk '{printf"%-8s %-8s %-18s %-8s %-10s %-18s\n", $1 ,$2,$3,$4,$5,$6,$7,$8}' filename

【7】过滤
比较运算符:!=, >, <, >=, <=,==

//输出所有第一个字段大于2的
awk '$1>2 {print $2}' filename
//输出全部包含192的行
awk '/192/' failname
//输出第6个字段大于9的行
awk '$6>9' failename

【8】内建变量

//$0  当前记录(这个变量中存放着整个行的内容)
//$1~$n  当前记录的第n个字段,字段间由FS分隔
//FS    输入字段分隔符 默认是空格或Tab
//NF  当前记录中的字段个数,就是有多少列
//NR  已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加中。
//FNR  	当前记录数,与NR不同的是,这个值会是各个文件自己的行号
//FILENAME   	当前输入文件的名字
//OFS  输出字段分隔符, 默认也是空格

【8-1】变量NF

//输出每一行的最后一个字段
awk '{print $NF}' filename
//输出倒数第二个字段
awk '{print $(NF-1)}' filename

【8-2】NR

awk '{print NR ")" $1}' filename

【8-3】FILENAME

//最后一个字段输出文件的名字
awk '{print FNR ")" $0  FILENAME}'  filename

【9】

//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值