十七.正则以及grep,sed,awk的简单应用

心动丶男孩 心动丶男孩     2022-08-31     745

关键词:

一.正则表达式:/ /
grep,sed,awk 都能解释正则表达式


正则表达式:把一些特殊符号组合到一起描述字符和字符串的方法。
^ 以什么开头 grep ‘^root‘ /etc/passwd
$ 以什么结尾 如能登入系统的所有用 grep ‘bash$’/etc/passwd
. 任意一个字符 grep ‘^b.n‘ /etc/passwd 过滤取到bin的
.* 所有字符
* 代表前面的字符有0个或者无穷个 grep ‘b*‘ /
+ 必须用egrep 或 egrep -E ‘ab+’表示前面的字符有一个或者无穷个
{}  ‘ab{n}’前面的字符有n个  控制前面字符个数{3} 前面字符的个数为3
? ‘ab?’前面字符出现0次或1次 前面的字符为b 不是ab
[]  [yan] 只取里面的一个y[asdd]n  yan ysn ydn yasn 可以取到yan ysn ydn
[^]中括号里面的取反
^[^] 非字符组的字符开头的行
[a-z]所有的小写字母
[A-Z]所有的大写字母
[a-zA-Z]所得大小写字母
[123-]去123其中的一个或 ‘-‘
-必须放在后面
二.grep
grep 命令:
grep -n 显示匹配所在行
-q  静默模式
-l  打印文件名
-A n 打印后几行
-B n 打印前几行
-C n 前几行和后几行
-o 只显示匹配的内容
-c 匹配成功的行数
-E ==egrep
-i 忽略大小写,全部抓取
-v 取反抓取,过滤  不匹配这几行,过滤到其他
-w 过滤单词全部的内容

三.sed 流编辑器
sed包括两部分  第一部分为定位到行,其次是正则定位
sed -r ‘定位+操作‘
-n  静默模式  默认的输出不打印出来
-e  可以指定多个规则
-i  将内容写到文件里面并且打印出来
-f  将内容写到指定文件里
命令:
d=del 删除 sed ‘2d‘ 文件名  删除文件的第二行并打印出来,源文件不修改
p=print 打印 sed‘2p‘ 打印第二行
c=change 修改 sed‘2c 111111‘ 将第二行改成111111
a=append 追加 sed‘2a 11111 ‘ 在第二行后面追加11111
i=inset 插入 sed ‘2i 11111‘在第二行前一行插入11111
s=substation 替换 sed ‘s/a/b/g’ 把所有的a换成b   g代表这行当中所有都改,不加只改第一个a
sed 正则定位
sed ‘/正则表达式/命令’目标文件
sed ‘ ; ‘ 目标文件  两个命令一起执行
sed -r ‘s///‘ s命令修改部分内容

四.awk

awk 可以处理格式明显的文本
awk -F  指定分隔符
如:
--awk -F: ‘{print $n}’/ect/passwd 取用户配置文件的:前面的n个并打印出来
--awk -F: ‘{print $n,NF}’/ect/passwd 取用户配置文件的:前面的n个并打印出来 并且打印出有几段
--awk -F: ‘{print $n,$NF}’/ect/passwd 取用户配置文件的第n段和最后一段并且显示出来
--awk -F: ‘{print $n,NR}’/ect/passwd 取用户配置文件的第n段并且显示行号
&0 取所有   NF 代表以:为分隔符的有几段   NR表示显示行号:
NR==1 表示定位
--awk -F: ‘NR==1{print $n}’/etc/passwd 取用户配置文件的第一行的第N段
--awk -F: ‘NR<=3{print NR,"aaaaaa",$1,NF}‘ /etc/passwd 取用户配置文件的前三行的第一段,并且显示行号,行内以:分割的有几段
--awk -F: ‘3<=NR&&NR<=5{print NR,"aaaaaa",$0,NF}‘ /etc/passwd 用户配置文件的3-5行的
--awk -F: ‘NR<=2||NR>=5{print NR,"aaaaaa",$0,NF}‘ /etc/passwd 用户配置信息的第二行之前的,第7行之后的
--awk -F: ‘/nologin$/{print $1}‘ /etc/passwd
--awk -F: ‘$1~/^r.*t$/{print $3,$1}‘ /etc/passwd 取用户配置文件的第一段的以r开头t结尾的第3段和第一段
--{     count=n   定义一个变量
 awk -v x=$count -F: ‘$3 >= x{print $1}’/etc/passwd
  } 取用户配置信息的UID>n的第一段并且打印出来 


其他常用命令的补充:
--cat a.txt |sort |uniq 排序并且去重a.txt的文件内容
--cut命令  cat a.txt |cut -d: -f1,3 取a.txt 以:为分隔符的第一段和第三段
--find命令 find / -type f
                  -name "* .txt" 根目录下以txt文件为结尾的文件
                  -size +30M  大于30M的文件
                  -size +10M -size -30M 大于10M小于30M的文件

通过grep,awk,sed的简单应用获取网卡信息。

本文主要通过shell命令来实现获取网卡信息。通过cmd_shell函数可以将运行命令后的输出返回。  intcmd_shell(char*shellcmd,char*outbuffer,intsize){FILE*stream;charbuffer[size];memset(buffer,0,sizeof(buffer));stream=popen(shellcmd,"r");if(stream 查看详情

shell脚本应用正则表达式grep,sed,awk,的应用

 准备测试文件从test.txt文件中查找出特定字符“the”所在的位置查找不包含“the”字符的行同时查找到“shirt”与“short”这两个字符串查找包含重复单个字符“oo”查找“oo“前面不是”w“的字符串查找“oo”前面不存在小写字... 查看详情

正则表达式学习之grep,sed和awk

  正则表达式是用于描述字符排列和匹配模式的一种语法,它主要用于字符串的模式分割、匹配、查找以及替换操作。  描述一个正则表达式需要字符类、数量限定符、位置限定符。规定一些特殊语法表示字符类,数量限定... 查看详情

awk sed grep  正则表达式

做事要有耐心。虚心接受建议,你确实有很多缺点。就算进步慢,也不可以停止前进的脚步。AWKawk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把... 查看详情

正则介绍sed

grep工具的功能其实还不够强大,grep实现的只是查找功能,而它却不能实现把查找的内容替换掉。以前用vim的时候,可以查找也可以替换,但是只局限于在文本内部来操作,而不能输出到屏幕上。sed工具以及后面要讲的awk工具就... 查看详情

正则表达式 - grep、sed、awk - 处理大型文本文件

】正则表达式-grep、sed、awk-处理大型文本文件【英文标题】:regularexpression-grep,sed,awk-processinglargetextfile【发布时间】:2021-08-0603:42:26【问题描述】:我一直在使用文本编辑器来完成我的正则表达式工作。它工作得很好,但现在我... 查看详情

三剑客grep/sed/awk

6.1、正则表达式 正则表达式:是一类字符所书写出的模式(pattern);元字符:不表示字符本身的意义,用于额外功能性的描述。 1)基本正则表达式:BRE元字符:.: 匹配任意单个字符[char]: 匹配指定范围内的任意单... 查看详情

正则与sed,grep,awk三剑客

系统登录顺序:/etc/profile/etc/profile.d/a.sh(a.sh自己建的)/root/.bash_profile/root/.bashrc/etc/bashrc /bin/bash提供命令解释器(终端)直接打/bin/bash非登录shell/root/.bashrc/etc/bashrc/etc/profile.d/a 可将别名alias等写入以上三个文 查看详情

notes12用swagger开发rest,正则,linux命令sed/awk/grep(代码片段)

...章目录1.swagger:用来规范前端和后端统一接口管理2.正则2.1组group3.sed4.awk5.grep1.swagger:用来规范前端和后端统一接口管理rest接口本身就是http的接口,只不过rest接口一般满足一定的规范,这个规范下的http接口就叫r... 查看详情

awk,grep,sed三剑客(代码片段)

想学好“三剑客”最基本还是正则表达式的熟练正则表达式全集日志的格式2018/10/0323:59:14.944adapter.go:353:[warning][SLOW_QUERY]cost_time:111.420169mssucc:trueconnection_id:0txn_start_ts:403375431254540289database:table_ids:[21]index_ids 查看详情

正则表达式:awk

一、awk简介简介:awk是一个强大的文本分析工具,相对于grep的过滤,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。相比于sed常常作用于一整行的     处理,awk则比较倾向于将一行分为数个“字... 查看详情

unix&linux的文本处理工具--grep,sed&awk

...p能追溯到最初的unix行编辑器ed而grep的命名代表g(全局)/re(正则表达式)/p(打印)正是ed中全局打印行匹配的语法.grep自身的劣势在于无法实现多行匹配,这时sed和awk相继出现弥补了grep的不足。在进入sed的相关讨论之前,先就sed跟awk之... 查看详情

linux三剑客的基本使用——grep、sed、awk

...到的参数,其它的参数需要另行查找文档,比如可以使用正则进行匹配。内容相关的-B,--beforecontext=NUM显示所在行之前的行数-A,--aftercontext=NUM显示所在行之后的行数-C,--context=NUM打印输出上下文的行数过滤内容相关的参数:-i... 查看详情

shell❀三剑客-grep+sed+awk(代码片段)

...的行,即文本搜索工具;grep:支持使用基本正则表达式;egrep:支持使用扩展正则表达式;fgrep:不支持使用正则表达式;#给grep家族加上特定 查看详情

正则介绍awk

前面也提到了awk和sed一样是流式编辑器,它也是针对文档中的行来操作的,一行一行的去执行。awk比sed更加强大,它能做到sed能做到的,同样也能做到sed不能做到的。awk工具其实是很复杂的,有专门的书籍来介绍它的应用,不过... 查看详情

linux的awk、grep、sed工具,实现文本查找、编辑、格式化

...格式:grep[option]patternfile用于过滤/搜索的特定字符,可与正则表达式配合,使用上十分灵活。命令格式:sed[options]'[地址定界]command'file(s)用于编辑一个或多个文件,简化对文件的反复操作。演示实例:命令格式:awk[options]... 查看详情

awk的基本用法(代码片段)

...,sed,awk1.grep系:基于PATTERN进行文本过滤grep:支持基本的正则表达式egrep:支持基本的和扩展的正则表达式fgrep:不支持正则表达式,纯文本2.sed:流编辑器,逐行编辑器;模式空间保持空间3.awk:报告生成器;格式化文档输出;... 查看详情

linux三大文件处理工具(grep/sed/awk)(代码片段)

...种。。。) grep(关键字:截取) 文本搜集工具,结合正则表达式非常强大主要参数[]-c:只输出匹配的行-I:不区分大小写-h:查询多文件时不显示文件名-l:查询多文件时,只输出包含匹配字 查看详情