Linux三剑客(awk、sed、grep) 和 正则表达式

这篇具有很好参考价值的文章主要介绍了Linux三剑客(awk、sed、grep) 和 正则表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正。

上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式,正则表达式——事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。而正则表达式又分普通正则和扩展正则。

正则表达式

普通正则表达式
符号 含义
^ 匹配开头,如 ^123  以123开头,有则匹配出来
$ 匹配结尾,如123$ 以123结尾,有则匹配出来        
^$ 匹配空行,也就是那一行啥都没有(空格也不行)则匹配出来
. 任意一个字符(空行除外
前一个字符连续出现0次或者多次
.*  任意字符出现0次(多次),也就是代表所有
[] 一次匹配一个字符,可多样。[abcd],匹配a或者b或者c或者d
[^] 取反,如[^abc],排查abc
[0-9]、[a-z]、[A-Z]、[a-Z] 由于[abcdef]这种匹配写法比较繁琐,因此有区间简化写法。范围匹配,其中[a-Z]释义:匹配小写a到z和大写A到Z
\ 反斜杠,适用于转义匹配,如匹配以.结尾  grep '\.$' filename

示例:其中准备的数据test.txt文件的8 9行为空行
awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 匹配以s开头,可匹配出scala和sparkawk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 匹配以a结尾,可匹配出scala和java
awk grep sed,Linux,linux,正则表达式,bash,后端


[root@node1 data]# # 匹配出空行,也就是匹配8 9 行
awk grep sed,Linux,linux,正则表达式,bash,后端

 
[root@node1 data]# # . 匹配出所有(空行除外),8 9为空行,则被过滤掉
awk grep sed,Linux,linux,正则表达式,bash,后端

 
[root@node1 data]# # * 匹配前一个字符连续出现0次或者多次

awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # .* 表示所有(包括空行)

awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 一次匹配一个字符,可多样。[abcd],匹配a或者b或者c或者d,注意:匹配的scala和hbase中有ca、ba两个同时出现,要看具体匹配过程可加-o参数

awk grep sed,Linux,linux,正则表达式,bash,后端

 [root@node1 data]# # 中括号区间匹配 [a-z],其中++不在小写a至z之间,所以没有高亮

awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 取反[^abc],即为排除abc(不高亮abc)

awk grep sed,Linux,linux,正则表达式,bash,后端

 [root@node1 data]# # \反斜杠转义,第一个grep由于没有转义,匹配出任意的字符,所以所有字符都高亮显示了,而第二grep加了转义符"\"反斜杠,将.转义成普通的字符,所以高亮显示了awk.sed.grep

awk grep sed,Linux,linux,正则表达式,bash,后端

 ### 以上为基础正则语法,接下来的为扩展正则语法 

扩展正则表达式
符号 含义
前一个字符连续出现0次或者1次,也就是出现0次或者1次
+ 前一个字符出现1次或者1次以上
{} 前一个字符出现的次数。a{1,3}:a最少出现1次,最多出现3次。b{5}:b只出现5次,此处为精确匹配
| 或者,A|B:A或者B 
() 表示一个整体(java|scala),匹配java或者scala,这里当做一个整体匹配

示例:还是以刚才的test.txt文件为基础数据

特别说明:由于是用到了扩展正则,所以grep需要加参数 -E,你可能也见过egrep,egrep 和grep -E 完全一样,只是扩展的另一种写法,grep 常用的参数在后续会做出解释

[root@node1 data]# # 扩展正则+号,前一个字符出现1次或者1次以上,也就是至少匹配1次
awk grep sed,Linux,linux,正则表达式,bash,后端

awk grep sed,Linux,linux,正则表达式,bash,后端

 [root@node1 data]# # 扩展正则|符号,匹配l或者k  l|k

awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 扩展正则() ,匹配sa中间是c或者p的

awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 扩展正则 {} 次数匹配

awk grep sed,Linux,linux,正则表达式,bash,后端

awk grep sed,Linux,linux,正则表达式,bash,后端

[root@node1 data]# # 扩展正则 ? 匹配0次或者1次,其中小写l在后面的字母hello出现了1次,scala出现0次,golang也是0次。

awk grep sed,Linux,linux,正则表达式,bash,后端

###  至此,你对正则已经熟悉了解了,接下来则是三“贱”客

三剑客——awk(老大)、sed(老二)、grep(老三)

名字 适用场景
awk 取列,统计计算。取对应列的值,后续用于对比、计算,以及数组的计算,由于数组计算使得awk排行老大
sed 替换,修改文件,日志取行。文件的修改以及日志的范围取行,如晚上0点到凌晨1点的日志
grep 用于过滤,grep的命令过滤是最快的

按照习惯,先易后难,下面解释grep 常用的参数,对于日常用已经够用啦,当然想深入学习可man grep 看官方解释。

三剑客老三:grep

grep 常用参数

实例:以我本机一段message日志为例

[root@node1 data]# cat message 
Sep 12 18:18:43 node1 systemd: Started GSSAPI Proxy Daemon.
Sep 12 18:18:43 node1 systemd: Reached target NFS client services.
Sep 12 18:18:43 node1 systemd: Starting NFS client services.
Sep 12 18:18:43 node1 mcelog: ERROR: AMD Processor family 25: mcelog does not support this processor.  Please use the edac_mce_amd module instead.
Sep 12 18:18:43 node1 mcelog.setup: CPU is unsupported
Sep 12 18:18:43 node1 mcelog: ERROR: AMD Processor family 25: mcelog does not support this processor.  Please use the edac_mce_amd module instead.
Sep 12 18:18:43 node1 mcelog: CPU is unsupported
Sep 12 18:18:43 node1 systemd: mcelog.service: control process exited, code=exited status=1
Sep 12 18:18:43 node1 systemd: Failed to start Machine Check Exception Logging Daemon.
Sep 12 18:18:43 node1 systemd: Unit mcelog.service entered failed state.

grep -i :grep 默认是区分大小写的,-i参数则不区分大小写匹配

awk grep sed,Linux,linux,正则表达式,bash,后端

 grep -v:反向匹配(取反,过滤掉匹配的) 

awk grep sed,Linux,linux,正则表达式,bash,后端

grep -E :扩展正则表达式,匹配多个条件  "ERROR|Started|failed",egrep等同于grep -E

awk grep sed,Linux,linux,正则表达式,bash,后端

grep -w :精确匹配,主要用于过滤端口

awk grep sed,Linux,linux,正则表达式,bash,后端

grep -c :统计匹配次数(类似于wc -l)

awk grep sed,Linux,linux,正则表达式,bash,后端

 grep -n:匹配后显示行号

awk grep sed,Linux,linux,正则表达式,bash,后端

### 以上为grep 常用参数以及实例,接下来则为sed

三剑客老二:sed

sed 命令: sed是以数据流方式读取文件内容,每次会读取一行进行匹配,看是否满足匹配要求,满足则做增删改查操作,操作完成后屏幕打印,打印出来后重复刚才的动作读取下一行进行匹配,以此循环,流程如下图。

awk grep sed,Linux,linux,正则表达式,bash,后端

功能

解释说明

p

p为打印(pringt)

s

s为替换(substitute)

d

d为删除(delete)

cai

替换replace,追加append,插入insert

以上简记为为增删改查(此增删改查非curd

 test.txt示例数据准备

awk grep sed,Linux,linux,正则表达式,bash,后端

在使用sed命令打印之前需了解-n参数,加了-n参数为取消自动打印,-n通常与p搭配(可以死记np组合),区别如下:

awk grep sed,Linux,linux,正则表达式,bash,后端

sed p查找打印——print 

'1p'、'3p'  打印第1行,打印第3行,用于精确匹配行数

awk grep sed,Linux,linux,正则表达式,bash,后端

'1,3p'、'2,5p' 打印第一至第三行,第二至第五行,用于范围。扩展:'5,$p'——打印第五行至最后一行

awk grep sed,Linux,linux,正则表达式,bash,后端

'/scala/p' 精确匹配出scala,类似于grep命令,// 斜线中间可写正则,/[abc]/,如果用到了扩展正则,则需要加 -r参数:如  sed -nr ’/[abc]?/’ test.txt

awk grep sed,Linux,linux,正则表达式,bash,后端

'/scala/,/spark/p' 表示匹配scala到spark范围内全部输出,通常用于日志时间

awk grep sed,Linux,linux,正则表达式,bash,后端

进阶用法:以上4种可混合搭配,如:sed -n '2,/hbase/p' test.txt

awk grep sed,Linux,linux,正则表达式,bash,后端

查找打印“p”总结

'1p'、'3p' 

打印第1行,打印第3行,用于精确匹配行数

'1,3p'、'2,5p'

打印第一至第三行,第二至第五行,用于范围,扩展:'1,$p'——打印第一行至最后一行

'/scala/p'

精确匹配出scala,类似于grep命令

'/scala/,/spark/p'

表示范围匹配,从scala到spark

sed d删除——delete

有了查找的基础再来看删除就很简单了

'1d'、'3d' 

删除第1行,删除第3行,用于精确匹配行数

'1,3d'、'2,5d'

删除第一至第三行,第二至第五行,用于范围,扩展:'1,$d'——删除第一行至最后一行

'/scala/d'

精确匹配出scala并删除

'/scala/,/spark/d'

表示范围匹配,删除从scala到spark

'1d'、'3d'  删除第1行,删除第3行,用于精确匹配行数

awk grep sed,Linux,linux,正则表达式,bash,后端

'1,3d'、'2,5d'  删除第一至第三行,第二至第五行,用于范围,扩展:'4,$d'——删除第四行至最后一行

awk grep sed,Linux,linux,正则表达式,bash,后端

'/scala/d'  精确匹配出scala并删除

awk grep sed,Linux,linux,正则表达式,bash,后端

'/scala/,/spark/d'   表示范围匹配,删除从scala到spark

awk grep sed,Linux,linux,正则表达式,bash,后端

实战案例:删除空行和#注释行

awk grep sed,Linux,linux,正则表达式,bash,后端

查找跟删除已经完结了,接下来是sed命令增加 

 sed  cai增加——replace、append、insert   

参数解释 -cai

c

replace  替换

a

append  行后追加

i

insert     行前插入

'3c this is replace'  将第三行替换成 this is replace

awk grep sed,Linux,linux,正则表达式,bash,后端

'3a this is append'  在第三行后面追加this is append

awk grep sed,Linux,linux,正则表达式,bash,后端

'3i this is insert'  在第三行前插入this is insert

awk grep sed,Linux,linux,正则表达式,bash,后端

sed s 替换——substitute

参数释义:   -s 为替换

                     -g 为全局替换(global),不加的话只替换每行的第一个匹配项

命令格式:sed 's///g' test.txt,sed 's###g' test.txt,sed 'sAAAg' test.txt,sed 's888g' test.txt,不管是///还是###,AAA这些,都能匹配,没有严格要求,但是尽量避免关键字符。比较常见的为###,///

替换这块主要是正则表达式书写能力,正则很强的话后面几个进阶案例会让你自然领悟

替换每行中0、1、2为aa

awk grep sed,Linux,linux,正则表达式,bash,后端

sed进阶之反向引用:先正则匹配出来分组,后续按组使用

把hello_linux 改成linux_hello

awk grep sed,Linux,linux,正则表达式,bash,后端

正则匹配这块可根据自己的习惯来,能匹配出来就行

上图的echo 'hello_linux' |sed -r 's#([a-z]+)_([a-z]+)#\2_\1#g' 和 echo 'hello_linux' |sed -r 's#(.*)_(.*)#\2_\1#g' 这两个匹配出来的结果是一样的

sed 进阶反向实战案例一:取ip

awk grep sed,Linux,linux,正则表达式,bash,后端

sed 进阶反向实战案例二:切出sync(切出/etc/passwd sync用户名)

awk grep sed,Linux,linux,正则表达式,bash,后端

awk grep sed,Linux,linux,正则表达式,bash,后端

三剑客老大:awk

awk是一种用于处理文本的编程语言工具,很多方面都类似于shellc语言),主要应用场景:统计日志,计算。其awk执行过程如下图。左边为案例,右边为流程图

awk grep sed,Linux,linux,正则表达式,bash,后端

 在上手awk之前首先了解什么是行与列,行——awk中称为记录,单行默认以回车分割;列——awk中称为字段(类似于数据库的字段),默认用空格分割。除了行与列还需要熟悉awk的常用内置变量,以下的内置变量在接下来的案例中都有使用到 

内置变量

变量说明

NR

行号   NR==2:第二行

NF

字段数量(多少列)  $NF:最后一个字段

FS

输入字段分隔符,默认空格。-F: 等同于-v FS=:    ----说明:-v 是修改awk变量

OFS

输出字段分隔符,默认空格。

awk取行

行号的内置变量是NR,运算符有>  <  >=  <=  ==  !=,有shell(c) 或者其他开发语言基础,都能理解吧

NR==1:取第一行

awk grep sed,Linux,linux,正则表达式,bash,后端

NR>=3 && NR<=6:取36行(范围取行)

awk grep sed,Linux,linux,正则表达式,bash,后端

/spark/:精确匹配取spark行,这个地方比sed简单,不需要那些-n p啥的 

awk grep sed,Linux,linux,正则表达式,bash,后端

/java/,/spark/:也可以匹配范围取行,比如java到spark

awk grep sed,Linux,linux,正则表达式,bash,后端

awk取列

参数说明:

        -F : 指定分隔符——每一列的结束符,默认为空格、连续空格、制表符

        $数字:awk中$数字就表示第几列,$0表示处理后输出的所有

awk取第一列,第二列

awk grep sed,Linux,linux,正则表达式,bash,后端

取ll 显示的第1列和最后一列($NF)

awk grep sed,Linux,linux,正则表达式,bash,后端

取/etc/shadow的第1列和第五例,并置换位置,且输出分隔符用  ---

awk grep sed,Linux,linux,正则表达式,bash,后端

awk取行和列进阶案例:取出 /etc/passwd 第三行至第七行,并且置换第一列与第最后一列,屏幕输出列的分割符号用% awk grep sed,Linux,linux,正则表达式,bash,后端

 经典案例:切割ip

awk grep sed,Linux,linux,正则表达式,bash,后端  

awk 模式匹配

 awk -F'[ /]+' 'NR==3{print $3}' 

        awk——命令

        -F ——选项

        'NR==3{print $3}'——模式{动作}          # 此处下面为模式说明

                模式说明——

                        比较符:> < >= <= == !=

                        正则://,斜线里支持写扩展正则,能精确到单列,包含(~)和不包含(!~)

                        范围表达式:/开始/,/结束/;NR==2,NR==7     # 前者为方式一,后者为方式二

                        特殊模式:BEGIN{}、END{}

模式说明之比较符案例:从第二行开始取最后一列

awk grep sed,Linux,linux,正则表达式,bash,后端

模式说明之正则案例:取第二列以2开头

awk grep sed,Linux,linux,正则表达式,bash,后端

 找最后一列,以a,b,c结尾的,并显示第1列和最后一列,以***分割输出

awk grep sed,Linux,linux,正则表达式,bash,后端  

模式说明之范围表达式案例:显示message 18:50:01到19:10:01 月份日期和时间

awk grep sed,Linux,linux,正则表达式,bash,后端

模式说明之特殊模式:BENGIN{}、END{}

特殊模式——BEGIN:文件读取之前会执行里面的内容。适用于文件处理前添加说明;简单计算,统计;定义awk变量(和-v 一个意思)。以下表格为计算、统计方法说明(i为自定义变量),统计方法会在数组,日志计次,列求和常用。

统计方法

简写

使用场景

i = i + 1

i++

统计次数

i = i + $?  这里 $? 以$1为例

i += $?

第一列求和

i[]=i[]+1

i[]++

数组分类统计次数

特殊模式BEGIN——文件处理前添加说明案例:在文件读取前BEGIN添加说明" ---BEGIN---" awk grep sed,Linux,linux,正则表达式,bash,后端特殊模式BEGIN——简单计算和统计:root用户pid 求和 awk grep sed,Linux,linux,正则表达式,bash,后端

特殊模式——END:文件读取之后会执行里面的内容。 适用于文件处理后添加说明;对应之前BEGIN的计算在END输出结果;

END案例:求1到100的和(通过上面的bengin和end案例,你应该能写出来)awk grep sed,Linux,linux,正则表达式,bash,后端

awk数组

awk能排上老大的称号主要是因为数组统计,这个地方的统计主要用于日志,比如说高可用中探活时间统计,日志中用户名、ip出现次数等等……

shell数组 VS awk数组

shell数组

awk 数组

定义方式

array[0]=hello

array[0]=hello

使用输出

echo ${array[0]}

print array[0]

批量输出

shell数组的批量输出是for循环,如:

[root@node1 ~]# array[0]=hello

[root@node1 ~]# array[1]=scala

[root@node1 ~]# array[3]=java

[root@node1 ~]# for i in ${array[*]};do echo $i ;done

hello

scala

java

awk中,数组的输出方法也是for循环,但是更加简洁。

坑一:由于在awk 中,所以定义数组的时候如果是字母,会被识别为变量导致变量失败,所以需要用双引,array[0]=”hello”

坑二:for 循环必须带上括号for (i in array)

坑三:print 打印需要带上index下标(有点类似于Python),如print array[0],不带的话直接print array 打印的是数组的index

案例:

[root@node1 ~]# awk 'BEGIN{array[0]="hello";array[1]="scala";array[2]="java" ;for (i in array) print i "下标:"array[i]}'

0下标:hello

1下标:scala

2下标:java

[root@node1 ~]#

awk数组案例:统计file.txt中每个单词出现的,并按降序排列

file.txt文件数据

1 linux "无尽之刃"

2 linux "幻影之舞"

3 linux "三相之力"

4 java "神秘之剑"

5 java "多米尼克领主的致意"

6 scala "兰德里的苦楚"

7 spark "暗夜收割者"

8 mysql "海妖杀手"

9 hive "纳什之牙"

10 hadoop "黑色切割者"

11 spark "死亡之舞"

[root@node1 data]# awk -F" " '{array[$2]++} END{for (i in array) print array[i],i}' file.txt |sort -rn

3 linux

2 spark

2 java

1 scala

1 mysql

1 hive

1 hadoop

[root@node1 data]#

awk grep sed,Linux,linux,正则表达式,bash,后端

 awk数组案例(进阶难度):统计file.txt中第二列首字母在r-z范围内,每个单词出现的次数,并按降序排列

awk grep sed,Linux,linux,正则表达式,bash,后端  

awk循环与判断

shell循环 vs awk循环

shell中for

awk中for循环

for((i=0;i<=100;i++)); do
     echo $i
done

for(i=0;i<=100;i++)
     print $i

shell判断 vs awk判断

shell中if 判断

awk中if判断

if [];then

     echo
else
     echo
fi

if()
    print
else
     print

awk for循环案例:

awk grep sed,Linux,linux,正则表达式,bash,后端

awk判断案例:输出磁盘使用率小于30%的所有信息

awk grep sed,Linux,linux,正则表达式,bash,后端

awk循环与判断进阶案例:echo "Life there are always frustrations, as long as we meet chaoyang, will see the light ahead.",输出语句中每个单词的字母数量大于等于5的单词

awk grep sed,Linux,linux,正则表达式,bash,后端

至此,下次遇到让你切割ip的面试问题,你能花式切割了吗?( *~▽~)

我知道大部分人都不喜欢看英文版的官文,这里分享一个中文命令手册!!!!

Linux命令手册:linux命令在线中文手册文章来源地址https://www.toymoban.com/news/detail-609962.html

到了这里,关于Linux三剑客(awk、sed、grep) 和 正则表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 文本处理三剑客:grep、sed 和 awk

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较

    2024年01月17日
    浏览(36)
  • Linux中字符处理三剑客(grep sed awk )

    在 Linux 系统中,字符处理流程可以利用三个常用的工具来完成,三剑客的具体说明如下: grep:grep 是一种强大的文本搜索工具,可以搜索文件内容中包含指定文本的行,并打印出包含该文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一种文本搜索

    2024年02月08日
    浏览(31)
  • Linux三剑客grep、sed、awk(包括练习题)

    Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 基本用法与常见的正则表达式 扩展正则表达式实践 此处使用grep -E 进行实践扩展正则,egrep官网已经弃用 注意:sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写

    2024年02月11日
    浏览(26)
  • Linux:管道命令与文本处理三剑客(grep、sed、awk)

    众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是 | 这个界定符号。另外,管道命令与连续执行命令是不一样的,这点下面我们会说明。 我们先

    2023年04月18日
    浏览(30)
  • Linux系统三剑客之grep和正则表达式的介绍(一)

    1.正则表达式 目录 1.正则表达式 1.什么是正则表达式 ? 2.正则表达式的使用场景 3.正则表达式字符表示 4.它们之间的区别 2.grep命令 作用: 语法: 说明: 选项:options 重点 实例 3.后面的下次再更新。  1.什么是正则表达式 ? 一个正则表达式就是描述了一个字符串集合的方式

    2024年01月18日
    浏览(43)
  • linux中shell脚本——shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.1.数组分类 1.2.定义数组方法 二.正则表达式 2.1.元字符 2.2.表示次数 2.3.位置锚定 2.4.分组 2.5.扩展正则表达式 三.文本三剑客之AWK 3.1.awk介绍及使用格式 3.2.处理动作 3.3.awk选项 3.4.awk处理模式 2.5.awk常见的内置变量  2.6.if条件判断 1.1.数组分类 ①关联数组:必

    2024年02月12日
    浏览(30)
  • shell之正则表达式及三剑客grep命令

    什么是正则表达式? 正则表达式是一种描述字符串匹配规则的重要工具 1、正则表达式定义: 正则表达式,又称正规表达式、常规表达式 使用字符串描述、匹配一系列符合某个规则的字符串 普通字符: 大小写字母、数字、标点符号及一些其它符号 元字符: 在正则表达式中具

    2024年02月12日
    浏览(31)
  • 文本三剑客&正则表达式2

    主要是对文件内容按照行的方式进行增删改查 工作流程 sed的工作流程主要包括** 读取、执行和显示 **三个过程 读取 sed从 输入流 (文件、管道、标准输入) 中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space ) 执行 默认情况下,所有的sed命令都在模式空间中

    2024年02月05日
    浏览(37)
  • 正则表达式和文本三剑客题型练习

    ​ 1、显示/etc/passwd文件中以bash结尾的行; 解释:使用 grep 工具来搜索文件 /etc/passwd 中匹配模式 \\\'bash$\\\' 的行。 bash$ 是一个正则表达式,其中 $ 表示行结尾。因此, \\\'bash$\\\' 匹配以 bash 结尾的行。 运行结果: ​ 2、找出\\\"netstat  -tan”命令的结果中,以‘LISTEN’后跟0或多个空白字

    2024年02月06日
    浏览(31)
  • Linux文本三剑客---awk

    Linux文本三剑客之一(grep,sed,awk),功能最强大的文本工具。 逐行读取输入的文本内容,默认以空格和tab键作为分隔符。但是多个空格或者tab键的空格,会自动压缩成一个,然后按照指定的模式和条件执行编辑命令 可以在免交互的情况下,实现复杂的文本操作。完成自动化配

    2024年02月07日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包