Linux学习笔记(3)----awk简单实用

目录

一、awk 命令

二、awk 内置变量

三、awk使用


一、awk 命令


(1)awk 是一个强大的文本分析工具,相对于grep,sed的编辑,awk 在其对数据分析并生成报告时,显得尤为强大,简单来说awk 就是把文件逐行读入,以空格为默认分隔符将每行切片,切开部分在进行各种分析处理
使用方法:awk '{pattern + action}'{filename}
其中,pattern 表示awk在数据中查找的内容,而action 是在找到匹配内容,而action 是在找到匹配内容时所执行的一系列命令;花括号{}不需要在程序中始终出现。
(2)awk 的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作
(3)通常,awk 是以文件的一行为处理单位的,awk每接收文件的一行,然后执行相应的命令来处理文本。

二、awk 内置变量


(1)ARGC 命令行参数个数
(2)ARGV 命令行参数排列
(3)ENVIRON 支持队列中系统环境变量的使用
(4)FILENAME awk浏览的文件名
(5)FNR 浏览文件名的记录数
(6)FS 设置输入域分隔符,等价于命令行 -F 选项
(7)NF 浏览记录的域的个数
(8)NR 已读的记录数
(9)OFS 输出域分隔符
(10)ORS 输出记录分隔符
(11)RS 控制记录分隔符
(12)$0 变量是指整条记录,$1 表示当前行的第一个域,$2 表示当前行的第二个域
(13)$NF 是number finally,表示最后一列的信息区别于NF,变量NF统计的是每行列的总数

三、awk使用


(1)ls | awk '/sh/' 列出目录内含有sh的文件或目录
(2)ls | awk '/sh$/' 列出目录内后面含有sh的文件或目录
(3)ls | awk '/^sh/' 列出目录内含有sh开头的文件或目录
(4)awk '{print FILENAME,NR,NF}' abc.txt 输出abc.txt的文件名,域内的行数、列数
(5)awk 'NR==2'abc.txt 输出第二行内容
(6)awk 'NR==4{$4="avr";printf $0}' abc.txt 输出第四行,其中第四行的第四个字符替换成avr
(7)awk 'NR==1{$8="avr";print $0} NR>1{$8=($4+$5+$6)/3;print $0}' abc.txt 将第一行的第八个字符改成avr后输出第一行,将第一行后面的每一行的第四至第六个字符求平均,输出每一行
(8)awk '{print $NF}' abc.txt 输出abc.txt的最后一列
(9)awk '{print $(NF-1)}' abc.txt 输出abc.txt的最后减一列
(10)awk 'NR>1&&NR<5{print $0}' abc.txt 输出第二行至第四行
(11)cat abc.txt |awk 'BEGIN{print "This is the love"}{print $0}' 打开abc.txt并在开头打入字符串"this is the love" 并输出,但并不保存进文档里面
(12)cat abc.txt |awk 'BEGIN{print "This is the love"}{print $0}END{print "END"}' 结尾加上“END”
(13)cat abc.txt |awk 'BEGIN{print "This is the love"}{print $0}END\
{print "END"}'
在行分割出打入\在按enter,进行换行


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不说二话的自家人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值