sed编辑器

文章目录

一.sed命令基础

1.sed概念

sed命令是对文本内容进行增删改查,生效才会存入硬盘中,不然会存在缓冲区

sed -i————————生效,生成在文本文件当中

sed—————————临时模式,不会对文本内容发生变化,就在模式空间,用户读取之后结束

2.sed的工作流程

主要包括读取,执行和显示三个过程

(1)读取:标准输入)中读取一行内容并存储到临时的缓冲区中 (又称模式空间,pattern spacesed)。

(2)执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行

(3)显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行。

在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。

3.命令格式

(1)sed -e ’操作‘ 文件1 文件2…

(2)sedsed -n-e ’操作‘ 文件1 文件2…

(3)sed -f 脚本文件 文件1 文件2…

(4)sed -i -e ’操作‘ 文件1 文件2…

3.1 执行多条命令的格式

方式一:
sed -e ‘操作1’ -e ‘操作2’ 文件
sed -n -e ‘/^r/p’ -e ‘/^b/p’ /etc/passwd​

方式二:
sed -e ‘操作1;操作2’ 文件

4.sed命令的常用选项

-e或-expression=:表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用
-f 或–file=:表示用指定的脚本文件来处理输入的文本文件。
-h 或–help:显示帮助。
-i 直接修改目标文本文件 慎用
-n 仅显示script处理后的结果

5.sed命令的操作符

常用选项
s:替换,替换指定字符。
d:删除,删除选定的行。
a:增加,在当前行下面增加一行指定内容。
i:插入,在选定行上面插入一行指定内容。
c:替换,将选定行替换为指定内容。
y:字符转换,转换前后的字符长度必须相同。
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,常和“-n”一起使用。

二.sed命令的打印功能

1.打印文本文件内容

1.1 格式

sed “ ” 要打印的文件名

sed '' /etc/fstab            #查看文件内容
sed '' < /etc/fstab          #可以支持重定向输入
cat /etc/passwd |sed ''      #也可以支持管道符

例:

sed " " 123.txt              #打印123.txt的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DhCR6JxZ-1686050201396)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606134040429.png)]

1.2 默认打印方式

格式:sed -e ‘p’ 文件名

sed -n ‘p’ 文件名

sed -e 'p' 123.txt          #默认打印文件内容
sed -n 'p' 123.txt          #过滤默认输出的重复一次只显示当前操作符打印出来的结果

2.指定行打印

2.1 指定行号打印

格式:sed -n ‘np’ 文件名

例:

sed -n '2p' 123.txt        #指定当前文件第二行打印

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lKRLrvA7-1686050201397)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606135014913.png)]

2.2 只打印文件的行数

格式:sed -n ‘=’ 文件名

例:

sed -n '=' 123.txt         #打印出123.txt文件里有多少行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cXFPYP8q-1686050201398)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606135259405.png)]

2.3 即打印文件的行号也打印文件的内容

格式:sed -n ‘=;p’ 文件名

例:

sed -n '=;p' 123.txt      #即打印出123.txt文件的行号也打印内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WMjJ8zjS-1686050201399)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606135706046.png)]

2.4 即显示行也显示指定行内容

格式:sed -n ‘=;np’ 文件内容

例:

sed -n '=;3p' 123.txt       #即显示第三行和第三行的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VX2fnBgF-1686050201399)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606140336670.png)]

2.5 指定打印最后一行

格式:sed -n ‘$p’ 文件名

例:

sed -n '$p' 123.txt          #指定打印123.txt的最后一行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-44RoLX72-1686050201399)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606140602624.png)]

2.6 指定行号的范围区间打印

格式:sed -n ‘n,np’ 文件名

例:

(1)指定行到行打印

sed -n '1,3p' 123.txt       #指定123.txt文件的1-3行打印

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrDAFicU-1686050201400)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606141323839.png)]

(2)指定第几行到最后一行打印

格式:sed -n ‘n,$p’ 123.txt

例:

sed -n '5,$p' 123.txt      #指定第五行到最后一行的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MUEtuvvq-1686050201400)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606142227497.png)]

(3)打印第几行和最后一行

格式:sed -n ‘np;$p’ 文件名

例:

sed -n '5p;$p' 123.txt      #指定打印第五行和最后一行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iv7gWlvF-1686050201400)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606143010810.png)]

(4)打印第几行和第几行

格式:sed -n ‘np;np’ 文件名

例:

sed -n '2p;6p' 123.txt       #指定打印第二行和第六行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lgn72Q8z-1686050201401)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606143232798.png)]

(5)指定打印第几行往下几行

格式:sed -n ‘n,+np’ 文件名

例:

sed -n '2,+2p' 123.txt      #指定打印第二行和第二行的后两行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m7q0OrZs-1686050201402)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606143537061.png)]

(6)指定打印第几行到往下第几行

格式:sed -n ‘n,+np’ 文件名

例:

sed -n '2,4p' 123.txt       #指定打印第2行到往下第4行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJCwuzZh-1686050201402)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606151334613.png)]

2.7 奇偶行打印

(1)打印出文件的奇数行

sed -n 'p;n' jishu.txt        

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l0zzW4L7-1686050201403)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606152430156.png)]

(2)打印出文件的偶数行

sed -n 'p;n' oushu.txt 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9hs07Yv9-1686050201403)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606153238483.png)]

(3)即打印行号也打印出偶数行

sed -n '=;p;n' oushu.txt

在这里插入图片描述

2.8 对字符串过滤打印

格式:sed -n ‘/想要打印所包含行的字符串/p’ 文件名

例:

sed -n '/w/p' zfc.txt         #打印所有包含w的行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BwCEwyPE-1686050201404)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606154340168.png)]

sed -n '/btr/p' zfc.txt     #打印btr这行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iAmoiZFj-1686050201404)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606154721443.png)]

3.sed使用正则表达式打印

3.1 sed基本正则表达式打印

3.1.1打印所有以字符串为开头的行

格式:sed -n ‘/^打印的字符串/p’ 文件名

例:

sed -n '/^root/p' /etc/passwd      #打印以root为开头的行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nzvte0MR-1686050201404)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606155808708.png)]

3.1.2 打印所有以字符串为结尾的行

格式:sed -n ‘/打印的字符串$/p’ 文件名

例:

sed -n '/bash$/p' /etc/passwd     #打印以bash为结尾的行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVcNTjlW-1686050201405)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606160048121.png)]

3.1.3 从第几行开始打印到第一个字符串结尾结束

格式:sed -n ‘/打印的字符串$/p’ 文件名

例:

sed -n '40,/bash$/p' /etc/passwd   #从第40行开始打印到第一个bash结尾结束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYUnml8r-1686050201405)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606160506609.png)]

4.sed使用扩展正则表达式打印

sed -r 支持扩展正则表达式。同时在 使用{n}、{n,}、{n,m}时,括号{}前不需要加反斜杠\ 。

例:

sed -r -n '/(99:){2,}/p' /etc/passwd      #包含有两个99:的内容所在行
sed -r -n '/^root|bash$/p' /etc/passwd    #包换以root开头,或者以bsah结尾的内容所在行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJagfG5B-1686050201406)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606161635093.png)]

三.sed命令的删除功能

sed -i 时会对文本进行实际操作(建议对目标文件先进行备份,再进行操作)

1.通过行号进行删除

1.1 删除所有,什么也不打印

格式:sed ‘d’ 文件内容

例:

sed 'd' 123.txt       #删除123.txt文件的所有内容,什么也不打印

1.2 删除第几行,打印剩余内容

格式:sed -n ‘nd;p’ 文件名

例:

sed -n '3d;p' 123.txt          #删除第三行,打印剩余的所有内容 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4tuA1S6n-1686050201406)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606162350158.png)]

1.3 删除第几行到第几行,打印剩余内容

格式:sed -n ‘n,nd;p’ 文件名

例:

sed -n '5,8d;p' 123.txt       #删除5到8行,打印剩余的所有内容 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGV2b6Hf-1686050201407)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606162628256.png)]

1.4 删除第几行到最后一行,打印剩余内容

格式:sed -n ‘n,$d;p’ 文件名

例:

sed -n '5,$d;p' 123.txt   #删除5到最后一行,打印剩余的所有内容 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lqxL0NWi-1686050201407)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606162807885.png)]

1.5 除了第几行到第几行,其他全部删除

格式:sed -n ‘n,n!d;p’ 文件名

例:

sed -n '4,6!d;p' 123.txt          #除了4-6行,其他的全部删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o9dMtp1B-1686050201407)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606163020292.png)]

2.匹配字符串内容删除

2.1 删除包含某字符串的行

格式:sed ‘/删除的字符串/d’ 文件名

例:

sed '/one/d' 123.txt               #删除包含one的行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jA2ZEo9s-1686050201408)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606163304063.png)]

2.2 保留第几行到第几行之间的内容,其余删除

格式:sed ‘/保留的第一个字符串/,/保留的第二个字符串/!d’ 文件名

例:

sed '/one/,/six/!d' 123.txt     #除了one-six的行,其余的全部删除,反向删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sHr11gjD-1686050201408)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606163628843.png)]

2.3 只保留第几行,其余删除

格式:sed ‘/保留的行/!d’ 文件名

例:

sed '/six/!d' 123.txt   #除了six的行,其余的全部删除,反向删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MwJQXcPa-1686050201409)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606163831575.png)]

2.4 字符串搭配正则进行删除

格式:sed ‘/^$/d’ 文件名

例:

sed '/^$/d' test1.txt               #通过^$,来删除空行

四.sed命令的替换功能

1.sed命令进行文件替换

(1)s:替换字符串

(2)c:整行替换

(3)y:字符替换,替换前后的字符串长度必须相同

2.替换标记

(1)数字:表明新字符串将替换第几处匹配的地方
(2)g:表面新字符串将会替换所有匹配的地方
(3)p:打印与替换命令匹配的行,与-n一起使用
(4)w文件:将替换的结果写入文件中

3.字符串替换

3.1 指定替换内容,每行出现第几个替换

格式:sed -n ‘s/要替换的字符串/替换后的字符串/np’ 文件名

例:

sed -n 's/root/test/p' /etc/passwd     #指定第一个root,替换为test
sed -n 's/root/test/2p' /etc/passwd     #指定第二个root,替换为了test 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xPa5fYWV-1686050201409)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606165115778.png)]

3.2 指定替换内容,所有都替换

格式:sed -n ‘s/要替换的字符串/替换后的字符串/gp’ 文件名

例:

sed -n 's/root/test/gp' /etc/passwd     #所有的root都替换为test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RCTZCqPT-1686050201409)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606165446691.png)]

3.3 以字符串为开头处理,把开头为空的替换为#

格式:sed -n '/^以什么为开头的字符串/ s/^/#/p’文件名

例:

sed -n '/^root/ s/^/#/p' /etc/passwd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Y1JLYaA-1686050201410)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606170105633.png)]

3.4 全部以#开头

格式:sed -n '/ s/^/#/p’文件名

例:

sed -n 's/^/#/p' /etc/passwd     

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQNrHELH-1686050201410)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606170231344.png)]

4.特殊形式(字符)大小写替换

4.1 把所有小写字母都替换为大写——U&

sed 's/[a-z]/\U&/g' test.txt 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gsv2wtA4-1686050201410)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606170809703.png)]

4.2 把所有的大写字母都替换为小写——l&

sed -i 's/[A-Z]/\l&/g' test.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuYHOoee-1686050201411)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606171005587.png)]

4.3 文件内所有的首字母都换成大写——u&

sed -i 's/[a-z]/\u&/' test.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UpJaV9QS-1686050201411)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606175834480.png)]

5.整行替换

格式:sed ‘/想要替换的内容/c 替换后的内容’ 文件名

例:

sed '/Qwer/c oneone' test.txt    #将test.txt中的Qwer替换为oneone

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aUnSKKO8-1686050201411)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606180313511.png)]

6.单字符替换

使用y,是对单个字符进行替换,每个字符需要一一对应,不是整体替换。前后字符串长度需要一致,不然会报错
只要有匹配的单字符会全部替换

格式:sed ‘y/想要替换的单字符/替换过后的单字符/’ 文件名

例:

sed 'y/a/2/' test.txt          #将a替换为2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CkWBTAjv-1686050201412)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606180713839.png)]

五.sed命令的添加功能

1.行添加

1.1 当前行的下一行添加

a:在下一行添加内容

1.1.1 当前行的下一行添加

格式:sed ‘/添加的行/a 添加的内容’ 文件名

例:

sed '/three/a 123' test.txt          #在test.txt文件的three行的下一行添加123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BH0AKlTQ-1686050201412)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606181607562.png)]

1.1.2 在最后的行后添加

格式:sed ‘$a 添加的内容’ 文件名

例:

sed '$a 123' test.txt          #在test.txt文件的最后一行添加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pa1XsYMe-1686050201412)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606181814735.png)]

1.2 当前行的上一行添加

i:在上一行插入内容

1.2.1 当前行的上一行添加

格式:sed ‘/添加的行/i 添加的内容’ 文件名

例:

sed '/three/i 123' test.txt      #在test.txt文件的three行的上一行添加123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyUKKXwR-1686050201412)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606182450692.png)]

1.2.2 在文件最后后面的行中添加

格式:sed ‘$i 添加的内容’ 文件名

例:

sed '$i 123' test.txt       #在test.txt的文件最后后面的行中插入123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ry3KXve8-1686050201413)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606182713870.png)]

1.3 在行后读入文件内容

r:在行后读入文件内容

1.3.1指定行的下一行

格式:sed ‘/指定的行/r 需要读取的文件’ 需要添加的文件名

例:

sed '/three/r 123.txt' test.txt     #指定three行的下一行添加读取的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xL7VogQG-1686050201413)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606183310175.png)]

1.3.2 先读取文件内容,然后再需要添加文件的末行插入读取的所有内容

格式:sed ‘/$r 读取的文件’ 需要添加的文件名

例:

sed '$r 123.txt' test.txt     #先读取123.txt内容,然后再到test.txt的末行插入读取的所有内容    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g2cKwspn-1686050201413)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606183603628.png)]

六.sed的分组,以及字符串位置替换

1.分组替换字符

echo bbxx | sed -r 's/(bb)(xx)/\2\1/'  

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uzMrMk3C-1686050201413)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606183946831.png)]

echo zzjjff | sed -r 's/(zz)(jj)(ff)/\3\1\2/'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PWA1XVDJ-1686050201414)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606184136463.png)]

echo 你喜欢我 | sed -r 's/(.)(.)(.)(.)/\4\3\2\1/'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jMyc32C-1686050201414)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606184425833.png)]

2.指定命令来对第二个文件的行进行处理——sed -f

2.1 文件内容替换

sed -f 123.txt 456.txt       #将第二个文件内容替换为第一个文件内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vrt8HA5M-1686050201414)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606184914105.png)]

2.2 特殊格式替换

sed -f test1.txt test2.txt 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2k90Xt7z-1686050201414)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606185212952.png)]

七.拓展

1.怎么解决sed命令处理容量大,或内容过多而导致执行效率慢的问题

使用split命令进行文件分割(例如文件如果是百万行,就创建一个单独的目录将文件分割为一百个为一万行的文本)再使用sed命令进行处理,除了split分割,也可以使用一个遍历分割shell脚本进行执行
例如:split -l -30 test1.txt se --按行分割 #用行开分割更直观,推荐使用
split -b 400M test1.txt se --按大小分割

2.删除文件内容但不删除文件名

(1)sed -i ‘d’ 文件名

(2)cat /dev/null > 文件名

3.删除空行的三种方法

(1)grep -v “^$” 文件名———————过滤出非空行

(2)cat 文件名 | tr -s ”\n"——————压缩换行符

(3)sed ‘/^$/d’ 文件名————————删除空行

4.将ifconfig-ens33 中的IP地址替换为10.10.10.10

cat /etc/sysconfig/network-scripts/ifcfg-ens33 | sed '/^IPADDR/c IPADDR=10.10.10.10'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8eoE983-1686050201415)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606190536253.png)]

5.只要版本号

cat bbh.txt | sed -r 's/(.*)-(.*)(\.jar)/\2/'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzuGqOGO-1686050201416)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606190959596.png)]

6.查看指定时间内的日志文件(格式根据自己的日志格式复制)

cat /var/log/messages | sed -n '/18:29:45/,/18:50:01 /p'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UPMkovly-1686050201417)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230606191324955.png)]

添加日期时间内的日志文件

cat /var/log/messages | sed -n '/Jun  6 18:40:01/,/Jun  6 18:50:01 /p'

在这里插入图片描述

总结

1.sed命令是一种流编辑器读取文件会进行逐行读取加上指令操作,所以过大的文件一定要拆分后再交给sed处理

2.sed -r 搭配扩展正则表达式使用,使用{n} {n,} {n,m} 不需要加“\”

3.用 -i 时一定要先备份(尤其对重要文件的操作),或者时先实验好确定无误时,再使用 -i

4.sed 命令 的重点在于增删改查四个功能,可以运用在脚本中对重要文件配置的修改,添加等作用尤其有效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯甜酒z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值