Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >AWK使用

AWK使用

作者头像
码缘
发布于 2022-09-21 02:48:28
发布于 2022-09-21 02:48:28
65900
代码可运行
举报
文章被收录于专栏:PHP修行之路PHP修行之路
运行总次数:0
代码可运行

引子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 zcat hnmuseum_21070701.gz|awk -F'[: ]' '{size[$3":"$4]+=$11} END{for(time in size){print time,size[time]*1.1/1024/1024}}'|sort

命令组成分三个部分:BEGIN、BODY、END

  • BEGIN和END需要关键字进行声明,而且是命令中的可选部分,其在命令执行时之后执行一次
  • BODY部分不需要关键字声明,但是在命令执行时BODY部分会根据输入的行数而执行多次
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk 'BEGIN{printf "序号 名称 吉祥物 数值 \n"} {print} END{print "下一页"}' language.txt
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) PHP 大象 10
2) Golang 地鼠 20
3) MySql 海豚 30
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
序号    名称    吉祥物
1)    PHP       大象
2)    Golang    地鼠
3)    MySql     海豚

常见操作

  • -F 分割字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk -F ' ' '{print $2}' language.txt
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk -F ' ' '{sum += $4}END{print sum}' language.txt
  • 遍历数组
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
200 /api/get_info 127.0.0.1 20
300 /api/get_info 127.0.0.1 20
400 /api/get_user 127.0.0.1 20
500 /api/get_info 127.0.0.1 30
200 /api/get_info 127.0.0.1 20
200 /api/get_user 127.0.0.1 10
200 /api/get_info 127.0.0.1 20
200 /api/get_user 127.0.0.1 50
300 /api/get_info 127.0.0.1 20
200 /api/get_user 127.0.0.1 60
400 /api/get_user 127.0.0.1 20
200 /api/get_info 127.0.0.1 20
500 /api/get_info 127.0.0.1 70
200 /api/get_info 127.0.0.1 20
200 /api/get_list 127.0.0.1 50
300 /api/get_info 127.0.0.1 20
200 /api/get_list 127.0.0.1 20
400 /api/get_list 127.0.0.1 40
500 /api/get_info 127.0.0.1 20
200 /api/get_info 127.0.0.1 30
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{arr[$1] ++}END{for(item in arr) print item ":" arr[item]}' data.txt

注意事项

  • 获取整行内容时使用 $0
  • 支持数组但不支持二位数组

常见函数

sub 查找替换
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{sub("hello","sub");print $0}' str.txt
next 类似于continue
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{if($1 == "200") next;print $0}' data.txt

自定义函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function find_min(num1, num2)
{
  if (num1 < num2)
    return num1
  return num2
}

function find_max(num1, num2)
{
  if (num1 > num2)
    return num1
  return num2
}

function main(num1, num2)
{
  # Find minimum number
  result = find_min(10, 20)
  print "Minimum =", result

  # Find maximum number
  result = find_max(10, 20)
  print "Maximum =", result
}

BEGIN {
  main(10, 20)
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk -f fun.awk

PHP和AWK对比

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 cat language.txt |php -r '$fh=fopen("php://stdin","r");while(!feof($fh)){$text=fgets($fh);$arr=explode(" ",$text);echo $arr[2]."\n";}fclose($fh);'
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 cat language.txt |awk '{print $3}'

参考地址:https://www.w3cschool.cn/awk/6d4t1k8l.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
AWK 深入浅出教程
---- 概述 awk是一门解释性文本处理语言,它在文本处理领域中非常强大和方便。awk有三个主要的类型是: AWK - 原先来源于 AT & T 实验室的的AWK. NAWK - AT & T 实验
吕海峰
2018/04/03
1.5K0
AWK 深入浅出教程
三十分钟学会AWK
本文大部分内容翻译自我开始学习AWK时看到的一篇英文文章 AWK Tutorial ,觉得对AWK入门非常有帮助,所以对其进行了粗略的翻译,并对其中部分内容进行了删减或者补充,希望能为对AWK感兴趣的小伙伴提供一份快速入门的教程,帮助小伙伴们快速掌握AWK的基本使用方式,当然,我也是刚开始学习AWK,本文在翻译或者补充的过程中肯定会有很多疏漏或者错误,希望大家能够帮忙指正。
用户2131907
2019/02/27
1.6K0
shell脚本编程神器之awk语法案例详解
假设存在一个文件 emp.data,其中包含员工的姓名、薪资(美元/小时)以及小时数,一个员工一行数据,其内容如下:
青山师
2023/05/05
8620
shell脚本编程神器之awk语法案例详解
生物信息 awk 用法进阶
全文6,829字(含代码),阅读18分钟。配图来源:《The AWK Programming Language》
黄树嘉
2019/05/31
6900
PL/SQL --> 函数
函数通常用于返回特定的数据。其实质是一个有名字的PL/SQL块,作为一个schema对象存储于数据库,可以被反复执行。函数通常被作为
Leshami
2018/08/07
9010
awk权威指南之 终结篇!
前段时间看了一下awk的使用选项,字段变量,标准变量,操作运算符,正则表达式,数组和控制流,并且也附带着一些相关的案例,总的来说,在深入了解和使用AWK之后,还是带来了很多的便利,在处理文本的文件的时候提供了更多的思路和便捷,比如按需自定义打印文本显示格式,进行一些简单的数据处理,同时awk还有和shell,python,go一些编程语言类似的循环,条件,逻辑处理,以及一些内置的函数更方便的帮助在命令行完成一些文本处理工作。今天完成了awk剩余的一些知识点学习。
公众号: 云原生生态圈
2021/11/15
8630
❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤️【建议收藏】
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
全栈程序员站长
2022/09/05
2.3K0
❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤️【建议收藏】
AWK权威指南
AWK 是一种解释执行的编程语言。它非常的强大,被设计用来专门处理文本数据。AWK 的名称是由它们设计者 的名字缩写而来 —— Afred Aho, Peter Weinberger 与 Brian Kernighan
公众号: 云原生生态圈
2021/11/15
1K0
AWK权威指南
35个非常实用的Shell拿来就用脚本实例!
(1)用户猜数字 #!/bin/bash # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。 # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1‐100 的随机数 num=$[RANDOM%100+1] echo "$num" # 使用 read 提示用户猜数字 # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于
入门笔记
2022/06/03
7840
AWK介绍[通俗易懂]
0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。 1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。
全栈程序员站长
2022/09/19
1K0
Linux--awk命令
awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
yaohong
2019/09/11
6.4K0
Linux--awk命令
shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
惨绿少年
2017/12/27
1.3K0
Awk是什么?一文带运维小白快速掌握Linux Awk用法
作者:a8 Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。sed是一种非交互式且面向字符流的编辑器(a "non-interactive" stream-oriented editor),而awk则是一门模式匹配的编程语言,因为它的主要功能是用于匹配文本并处理,同时它有一些编程语言才有的语法,例如函数、分支循环语句、变量等等,当然比起我们常见的编程语言,Aw
小小科
2018/05/04
2.4K0
Linux三大剑客之awk
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
1.1K0
技能篇:awk教程-linux命令
AWK是一门解释型的编程语言。用于文本处理,它的名字来源于它的三位作者的姓氏:Alfred Aho, Peter Weinberger 和 Brian Kernighan
潜行前行
2021/06/25
1.9K0
技能篇:awk教程-linux命令
Linux文本处理详细教程
本节将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是常用的; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧;
说故事的五公子
2020/08/10
4.4K0
超实用!18 个开箱即用的 Shell 脚本,拿好了~
for file in $(ls html); do mv file bbs_{file#} # mv file(echo $file |sed -r ‘s/.*(.*)/bbs\1/’) # mv file(echo file |echo bbs_(cut -d_ -f2) done
子润先生
2021/06/16
3720
基于Bash Shell的一个审计脚本
最近在给学生讲Linux下的常规命令的时候,有学生问过,windows下,无论是检查日志,还是扫描webshell,都有现成的工具使用,毕竟可视化,干啥也方便,Linux下比较麻烦,客户不让装这个,不让装那个,有些特殊情况下,服务器连个Python环境又没有,用perl写吧,还比较麻烦。
FB客服
2021/01/12
1.2K0
基于Bash Shell的一个审计脚本
Shell awk命令
比较表达式采用对文本进行比较,只有当条件为真,才执行指定的动作。比较表达式使用关系运算符,用于比较数字与字符串
剧终
2020/09/10
9620
Shell脚本编程
脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit命令后面的数字
星陨1357
2023/03/14
2.1K0
Shell脚本编程
相关推荐
AWK 深入浅出教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验