首页 > 系统相关 >轻松掌握 Linux 文本处理三剑客:grep、awk 和 sed 实战演练

轻松掌握 Linux 文本处理三剑客:grep、awk 和 sed 实战演练

时间:2024-02-20 11:46:27浏览次数:23  
标签:ps grep echo sed awk print 文本处理 三剑客

 

Shell 脚本语言编程有哪些优势呢?

Shell 脚本语言的优势在于能够以最轻量级最快捷的速度处理 Linux 操作系统偏底层的业务。比如软件的自动化安装、更新版本,监控报警,日志分析等。虽然其他高级编程语言如 PHP、Python、Ruby 等语言也能做到,但是效率和开发成本上会大打折扣,所谓“杀鸡用牛刀”,有点得不偿失。

成熟的技术人会摒弃华而不实的方法,而会根据不同的场景选择最合适的工具去解决问题,朴实而高效。比如本文着重介绍的 Linux 三剑客:grep、awk 和 sed 就是 Linux 文本处理问题的最高效工具。

下面,我们将依次介绍 Linux 文本处理三剑客的基础语法,使用场景和特性,以及给出对应的实战演练题目。

Shell 编程环境安装

  • Windows 用户,建议安装 Git Bash 软件。
  • Mac 用户,建议安装 iterm2 软件。
  • ssh 工具

Linux 三剑客介绍

 

 

  • grep:主要用于文本内容查找,支持正则表达式。
  • awk:主要用于文本内容的分析处理,也常用于处理数据,生成报告,非常适用于需要按列处理的数据。(现在很多Linux使用gawk)
  • sed:全称为 Stream editor ,主要用于文本内容的编辑,默认只处理模式空间,不改变原数据,而且 sed 使用逐行读取的方式处理数据。

 

 grep 示例 Shell 脚本代码

ps -ef  | grep bash
echo "ABC" | grep -i  abc
ps -ef | grep bash | grep -v grep
echo "1234 7654" | grep -o "[0-9]4"  
echo "1234 7654" | grep -oE "[0-9]4|76"

grep 实战演练题目

  • 找出 nginx.log 中所有 404 和 503 报错的 log 数据

$grep -E ' 404 | 500 ' nginx.log | wc -l

$awk '$9~/404|500/' nginx.log | wc -l

 

 

 awk 示例 Shell 脚本代码

ps | awk 'BEGIN{print "start"}{print $0}END{print "end"}'
awk '/ 404 | 500 /' /tmp/nginx.log
echo '1
2
3
4
5' | awk '/2/,/4/'
echo '1
2
3
4
5' | awk '$0>3'
ps | awk 'NR>1'
ps | awk '{print $NF}'
echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | grep -v "^$" | awk 'BEGIN{FS="\n";ORS=":"}{print $0}END{printf "\n" }'
echo '1,10
2,20
3,30' | awk 'BEGIN{a=0;FS=","}{a+=$2}END{print a,a/NR}'
awk 'BEGIN{print 33*20*76/200/3}'
echo "123|456_789" | awk 'BEGIN{FS="\\||_"}{print $2}'
echo "123|456_789" | awk "BEGIN{FS=\"\\\\||_\"}{print \$2}" #尽量使用单引号

sed

pattern表达式

  • 20 30,35 行数与行数范围
  • /pattern/ 正则匹配
  • //,// 正则匹配的区间


action

  • d 删除
  • p 打印,通畅结合-n参数
  • s/REGEXP/REPLACEMENT/[FLAGS]
  • 替换时引用 \1 \2 匹配的字段


sed 示例 Shell 脚本代码

ps | sed -n 1,3p
ps | sed 's/CMD/command/'
ps | sed -n '/ps/p'
echo '1
2
3
4
5' | sed -n '/3/,/4/p'
echo '1
2
3
4
5' | sed '/3/,/4/d'
ps | sed -e 's/CMD/command/' -e 's#00#20#g'

 

标签:ps,grep,echo,sed,awk,print,文本处理,三剑客
From: https://www.cnblogs.com/Wl55387370/p/18022725

相关文章

  • linux 中 grep命令 $?返回值 0、1、2的意义
     0:找到匹配模式1:未找到匹配模式2:指定的输入文件不对001、[root@pc1test1]#lsa.txt[root@pc1test1]#cata.txt##测试文本aabbcc11aa3333ddbb[root@pc1test1]#grep"aa"a.txt##匹配aaaabbcc11aa33[root@pc1test1]#echo$?......
  • grep -air
    grep-air是一个在使用grep命令时经常见到的命令行选项组合。grep是一个在文本文件中搜索特定模式的命令行工具,广泛用于Unix和类Unix系统。每个字母代表一个特定的选项,组合在一起可以更精细地控制grep的行为。这里是-air选项的含义:-a或--text:此选项使grep将二......
  • 三剑客—sed
    关于linux三剑客grep,过滤关键字信息数据。主要是用于查文本内的数据sed,对文本数据进行编辑,修改原文件内容awk,对文件数据过滤,提取,并且能实现,格式化输出awk对文件数据处理后,还能更美观的展示数据sed是什么sed软件本身sed提供的加工的命令给sed提供的源数据sed语法......
  • 网页 三剑客
    网页三剑客,是一套强大的网页编辑工具,最初是由美国的Macromedia公司开发出来的。由Dreamweaver,Fireworks,Flash三个软件组成,俗称网页三剑客。Dreamweaver是一个“所见即所得”的可视化网站开发工具,主要用于动态网页和静态网页的开发;Fireworks主要是用于对网页上常用的jpg、gif的制......
  • day29_三剑客sed
    关于学正则单个正则字符还认识组合到一起就晕了,怎么办?本质还是对单个字符没理解.认识*认识.*组合到就一起就蒙了,为什么?还是没想明白.的意义,*的意义正则表达式,从左向右,逐步理解单个字符的意义怎么做?1.思维脑图写没写?2.每一个正则表达式的符号,自己有没有动手......
  • day30-三剑客awk
    awk是什么再谈三剑客grep,擅长单纯的查找或匹配文本内容sed,更适合编辑、处理匹配到的文本内容awk,更适合格式化文本内容,对文本进行复杂处理后、更友好的显示三个命令称之为Linux的三剑客awk学完后的能力以下部分内容需要结合shell编程对文本行数据提取数据字段模式、动......
  • day10_管道符与grep与find
    关于代码文件和图片文件的存放务必搞清楚,绝对路径和相对路径关于linux命令执行的结果,以及后续处理关于文件打开的底层流程(文件句柄的概念)tail-f用法1.要求被检测的文件,存在2.可以tail-f检测关于html乱码以及UTF-8编码表的概念字节和字符挂钩的简单记忆1.查......
  • 正则表达式与正则可视化工具:解密文本处理的利器
    引言在计算机科学和软件开发领域,正则表达式是一种强大而灵活的文本处理工具。然而,对于初学者来说,正则表达式的语法和规则可能会显得晦涩难懂。为了帮助初学者更好地理解和学习正则表达式,正则可视化工具应运而生。本文将介绍正则表达式的基本概念、语法和应用,并介绍如何利用正......
  • grep 中 \W和\w正则匹配的含义
     \w ##匹配文字和数字字符,也就是[A-Za-z0-9],\W ##\w的反置形式,匹配一个或多个非单词字符,如点号句号等。 01、[root@PC1test1]#lsa.txt[root@PC1test1]#cata.txt##测试文本3432dsab45cdf887kkkkjjjjj,,;;;sdffffabc8888dddkk22,kk33kww......
  • Linux grep命令有何作用?如何使用?
    进行Linux系统维护的时候,想要在文本中快速搜索到你需要的东西,grep命令是非常不错的选择,它主要用于查找文件里符合条件的字符串,从而节省时间、提高工作效率。那么Linux系统中grep命令如何使用?我们一起来看看详细的内容介绍。Linuxgrep命令用于查找文件里符合条件的字符串......