千家信息网

awk和grep使用实例分析

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要讲解了"awk和grep使用实例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"awk和grep使用实例分析"吧!awk && grep
千家信息网最后更新 2025年02月04日awk和grep使用实例分析

这篇文章主要讲解了"awk和grep使用实例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"awk和grep使用实例分析"吧!

awk && grep 简介

日常工作中经常会使用 awk 和 grep 等命令做简单的数据统计工作,简便高效。awk 命令的最基本功能是在文件或者字符串抽取信息。通常 awk 是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。grep 命令则主要用于查找文件里符合条件的字符串。

awk

示例文件

// example.txt

a 10 200
a 30 100
b 20 300
c 10 100
c 20 800
c 30 600

关键参数

  • -F:指定分隔符
  • FILENAME:文件名
  • NR:行号
  • NF:每行的列数
  • $0:变量是指整条记录
  • BEGIN 和 END:BEGIN 被放置在没有读取任何数据之前执行,一般用来做初始化操作,而 END 被放置在所有的数据读取完成以后执行,一般用来输出处理结果

示例

# 指定分隔符为空格,每次都打印文件名、行号、列数、当前行的内容
awk -F ' ' '{print "filename:"FILENAME,"linenumber:"NR,"columns:"NF, "linecontent:"$0}' example.txt

# 打印第一列
awk -F ' ' '{print $1}' example.txt

# 打印倒数第一列
awk -F ' ' '{print $NF}' example.txt

# 打印倒数第二列
awk -F ' ' '{print $NF-1}' example.txt

# 打印第二行整行
awk -F ' ' 'NR==2 {print "filename:"FILENAME,"linecontent:"$0}' example.txt

# 第二列求和
awk '{sum+=$2} END {print "sum: " sum}' example.txt

# 第一列为 key,第二列为 value,求每个 key 对应的所有 value 的和
awk '{sum[$1]+=$2} END {for(idx in sum) print idx, sum[i]}' example.txt

# 统计第一列的元素分别出现了几次
awk '{sum[$1]+=1}END{for(i in sum)print i,sum[i]}' example.txt

# 统计前两列元素出现的次数
awk '{sum[$1" "$2]++}END{for(i in sum)print i,sum[i]}'

# 统计第三列值 ≤500 和 >500 的行数
awk -F ' ' 'BEGIN{i=0;j=0}{if($3<=500){i++}else{j++}}END{print i,j}' example.txt

# 统计第三列值 ≤200、≤500(>200)、>500 的行数
awk 'BEGIN{i=0;j=0;k=0}{if($3<=200){i++}else if($3<=500){j++}else{k++}}END{print i,j,k}' example.txt

# 循环语句
awk 'BEGIN{for(i=1;i<=5;i++){print i}}'
awk 'BEGIN {{i=1}do{print i;i++} while (i<=5)}'

grep

关键参数

  • -a :将 binary 文件以 text 文件的方式搜寻数据
  • -c :计算找到 '搜寻字符串' 的次数
  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v : 反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
  • --color=auto :可以将找到的关键词部分加上颜色

示例

grep [-acinv] [--color=auto] '搜寻字符串' filename

# 取出 /etc/passwd 文件中有 root 的行
grep root /etc/passwd

# 取出 /etc/passwd 文件中有 root 的行,同时显示行号
grep -n root /etc/passwd

# 将没有出现 root 的行取出来
grep -v root /etc/passwd

# 将没有出现 root 和 nologin 的行取出来
grep -v root /etc/passwd | grep -v nologin

# 使用 dmesg 列出关键信息,再以 grep 找出包含 eth 的行,将关键字所在的行的前 2 行和后 3 行一起取出来显示
dmesg | grep -n -A3 -B2 --color=auto 'eth'

# 在当前目录搜索带 energywise 行的文件
grep 'energywise' *

# 在当前目录及其子目录下搜索带 energywise 行的文件
grep -r 'energywise' *

# 在当前目录及其子目录下搜索带 energywise 行的文件,但是不显示匹配的行,只显示匹配的文件
grep -l -r 'energywise' *

感谢各位的阅读,以上就是"awk和grep使用实例分析"的内容了,经过本文的学习后,相信大家对awk和grep使用实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 关键 字符 字符串 统计 实例 实例分析 分析 内容 命令 数据 行号 一行 目录 示例 处理 学习 搜索 信息 元素 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手机软件开发创新 利用互联网科技赋能 一年级最简单的网络安全手抄报 武汉市网络安全工程师培训课程 护苗网络安全进课堂简笔画 数据库float 外国人看中国科技互联网 机械工程专业转行软件开发 有关网络安全的知识的作文 南宁市软件开发工资一般多少 我的世界手机版高度自由的服务器 如何删除我的世界服务器已安装光影 数据库日常维护与管理方向 深圳市聚豪网络技术有限公司 牧原集团 南阳 软件开发 加班 软件开发技术的进化 知乎 检查网络安全管理情况汇报 云服务器 xampp php做的服务器端 企业软件开发培训多少钱 数据库索引排序树 广州期货外汇交易软件开发 在上海软件开发 工资标准 全息网络安全科学技术 vb读取sql数据库 服务器系统更新需要一直开启吗 停车场数据库断开恢复办法 软件开发 资源优化 海豚时序数据库 上虞财务软件开发怎么选
0