前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell入门系列(三)awk

shell入门系列(三)awk

作者头像
suveng
发布2019-09-18 14:41:48
4960
发布2019-09-18 14:41:48
举报

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_37933685/article/details/85732249

文章目录

  • shell入门系列( 三 )awk
    • 简介
    • 基本语法
    • 特殊变量
    • 实践
      • 按行打印文件内容
      • 使用变量统计文件行数
      • 使用正则表达式筛选行的内容
      • 按行和列打印文件内容
      • 通过管道获取所有进程id
      • 获取内存信息
      • 获取ip
      • 读取数据保存到变量
      • 嵌套循环

shell入门系列( 三 )awk

简介

对数据按行和列处理;

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。

基本语法

代码语言:javascript
复制
awk 'BEGIN{...} pattern{...} END{...}'

特殊变量

$1 $2 $3 这些都是列变量,$1 第一列, $2 第二列, $3 第三列

NR :正在处理第几行

NF:正在处理的这一行有多少列

getline :在BEGIN中使用,读取一行,内容就少了一行列的特殊变量对这个行是有效的;getline; 可以重复使用,列的特殊变量采取最近原则

代码语言:javascript
复制
awk 'BEGIN{getline; print $1} {print}' awk.log

实践

awk.log 文件内容

代码语言:javascript
复制
one OOO
two TTT
three oTE
four UYI
five ooi

按行打印文件内容

代码语言:javascript
复制
awk 'BEGIN{print "start"} {print} END{print "end"}' awk.log

使用变量统计文件行数

代码语言:javascript
复制
awk 'BEGIN{i=0} {i++} END{print i}' awk.log

使用正则表达式筛选行的内容

代码语言:javascript
复制
awk 'BEGIN{pring "start"} '/^T.+/'{print} END{print "end"}' awk.log

按行和列打印文件内容

代码语言:javascript
复制
awk 'BEGIN{print 'start'} {print $1 $2 $3} END{print 'end'}' awk.log 

通过管道获取所有进程id

代码语言:javascript
复制
ps auxw 打印所有进程信息
ps auxw | awk '{print $2}'

获取内存信息

代码语言:javascript
复制
cat /proc/meminfo 内存信息
cat /proc/meminfo | awk ' '/MemTotal/'{print $2 }'

获取ip

代码语言:javascript
复制
ifconfig 
ifconfig | grep 'inet' | grep 'broadcast' | awk '{print $2}'

变换切割符 awk -F: 表示使用 : 来做为列的分隔符

读取数据保存到变量

代码语言:javascript
复制
echo | awk ' {"grep root /etc/passwd" | getline cmdout; print cmdout} '

嵌套循环

代码语言:javascript
复制
awk 'BEGIN{} {for(ii=0 ; i<3; i++){ print i }} END{}' awk.log
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • shell入门系列( 三 )awk
    • 简介
      • 基本语法
        • 特殊变量
          • 实践
            • 按行打印文件内容
            • 使用变量统计文件行数
            • 使用正则表达式筛选行的内容
            • 按行和列打印文件内容
            • 通过管道获取所有进程id
            • 获取内存信息
            • 获取ip
            • 读取数据保存到变量
            • 嵌套循环
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档