三剑客awk总结

awk
概述:一般擅长对列进行操作

参数
NR 对列进行操作
$1,$2 提取第几列信息
$NF 提取最后一列
$(NF-n) 提取倒数第几列
$0 提取所有列信息
-F 指定分割字符 (后面的指定字符需要" *"引号引起来 )

作用特点:
1、排除信息
2、查询信息
3、统计信息
4、替换信息

基本语法格式:
awk 参数 要干什么 文件

一、查询信息
1、按照行查询

awk 'NR==2' awk_test.txt

查询第二行信息
ps:注意分别=与==

查询连续信息

awk 'NR==2,NR==5' awk_test.txt

查询第二行到底五行的信息

查询不连续信息

awk 'NR==2;NR==5' awk_test.txt

查询第二行和底五行的信息

2、按照字符查询(需要一个舞台)

awk '/xiaoyu/' awk_test.txt

查询xiaoyu的有关信息

awk '/xiaoyu/,/waiwai/' awk_test.txt

查询xiaoyu到waiwai的相关xinx

awk '/xioayu/;/waiwai/' awk_test.txt

查询xiayu和waiwai的相关信息

awk '/xiaoyu/{print $1","$3}' awk_test.txt

Zhang,390320151

awk '/Xiaoyu/{print $1,$3}' awk_test.txt 

Zhang 390320151
查询xiaoyu这一行输出第一列与第三列
注意","与,的区别

awk '/zhang/{print $NF}' awk_test.txt | awk -F ":" '{print $3}'

(提取zhang的最后一列,以:为分隔符号提取第三列)

awk -F "[ :]+" '/^zhang/{print $1, $3, $(NF-1)}' awk_test.txt

(提取以zhang开头的行,以:为分隔,提取第一列,第三列,和最后一列-1列)

awk '$3~ /^41/{print $1, $2, $3}' awk_test.txt

匹配第三列,以41开头的行 输出第一列,第二列,第三列.

awk '$3~/1$|5$/{print $1,$2}'awk_test.txt|columt -t 

columnt -t(格式化显示) 匹配第三列 以1和5结尾的

awk '$2~ /xiaoyu/{gsub(/;/,"$",$NR);print $NF}' awk_test.txt

匹配第二列xiaoyu一行 将最后一列的:改为$,并输出最后一列
gsub格式:

gsub(/需要替换的信息/,"修改成什么信息",将哪列信息进行修改)
awk '$0~ /^#|^$/' awk_test.txt

找寻所有列以#和$开头的内容

BEGIN{}在awk命令前做什么事

awk 'BEGIN{print "姓","名","QQ号","捐款记录"}{print $0}' awk_test.txt |column -t

END{} 在awk执行命令结束之后做的操作

 awk 'BEGIN{print "姓","名","QQ号","捐款记录"}{print $0}END{print "操作结束"}' awk_test.txt |column -t 

二、统计累加

awk '/^$/{i=i+1;print i}' /etc/services
awk '/^#/{i++}END{print i}' /etc/services
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值