当前位置: 首页 > news >正文

做环保工程常用的网站/市场推广计划怎么写

做环保工程常用的网站,市场推广计划怎么写,云端物联网管理平台,网站建设控制文章目录 一.sed命令基础1.sed概念2.sed的工作流程3.命令格式4.sed命令的常用选项5.sed命令的操作符 二.sed命令的打印功能1.打印文本文件内容1.1 格式1.2 默认打印方式 2.指定行打印2.1 指定行号打印2.2 只打印文件的行数2.3 即打印文件的行号也打印文件的内容2.4 即显示行也显…

文章目录

  • 一.sed命令基础
    • 1.sed概念
    • 2.sed的工作流程
    • 3.命令格式
    • 4.sed命令的常用选项
    • 5.sed命令的操作符
  • 二.sed命令的打印功能
    • 1.打印文本文件内容
      • 1.1 格式
      • 1.2 默认打印方式
    • 2.指定行打印
      • 2.1 指定行号打印
      • 2.2 只打印文件的行数
      • 2.3 即打印文件的行号也打印文件的内容
      • 2.4 即显示行也显示指定行内容
      • 2.5 指定打印最后一行
      • 2.6 指定行号的范围区间打印
      • 2.7 奇偶行打印
      • 2.8 对字符串过滤打印
    • 3.sed使用正则表达式打印
      • 3.1 sed基本正则表达式打印
        • 3.1.1打印所有以字符串为开头的行
        • 3.1.2 打印所有以字符串为结尾的行
        • 3.1.3 从第几行开始打印到第一个字符串结尾结束
    • 4.sed使用扩展正则表达式打印
  • 三.sed命令的删除功能
    • 1.通过行号进行删除
      • 1.1 删除所有,什么也不打印
      • 1.2 删除第几行,打印剩余内容
      • 1.3 删除第几行到第几行,打印剩余内容
      • 1.4 删除第几行到最后一行,打印剩余内容
      • 1.5 除了第几行到第几行,其他全部删除
    • 2.匹配字符串内容删除
      • 2.1 删除包含某字符串的行
      • 2.2 保留第几行到第几行之间的内容,其余删除
      • 2.3 只保留第几行,其余删除
      • 2.4 字符串搭配正则进行删除
  • 四.sed命令的替换功能
    • 1.sed命令进行文件替换
    • 2.替换标记
    • 3.字符串替换
      • 3.1 指定替换内容,每行出现第几个替换
      • 3.2 指定替换内容,所有都替换
      • 3.3 以字符串为开头处理,把开头为空的替换为#
      • 3.4 全部以#开头
    • 4.特殊形式(字符)大小写替换
      • 4.1 把所有小写字母都替换为大写——U&
      • 4.2 把所有的大写字母都替换为小写——l&
      • 4.3 文件内所有的首字母都换成大写——u&
    • 5.整行替换
    • 6.单字符替换
  • 五.sed命令的添加功能
    • 1.行添加
      • 1.1 当前行的下一行添加
        • 1.1.1 当前行的下一行添加
        • 1.1.2 在最后的行后添加
      • 1.2 当前行的上一行添加
        • 1.2.1 当前行的上一行添加
        • 1.2.2 在文件最后后面的行中添加
      • 1.3 在行后读入文件内容
        • 1.3.1指定行的下一行
        • 1.3.2 先读取文件内容,然后再需要添加文件的末行插入读取的所有内容
  • 六.sed的分组,以及字符串位置替换
    • 1.分组替换字符
    • 2.指定命令来对第二个文件的行进行处理——sed -f
      • 2.1 文件内容替换
      • 2.2 特殊格式替换
  • 七.拓展
    • 1.怎么解决sed命令处理容量大,或内容过多而导致执行效率慢的问题
    • 2.删除文件内容但不删除文件名
    • 3.删除空行的三种方法
    • 4.将ifconfig-ens33 中的IP地址替换为10.10.10.10
    • 5.只要版本号
    • 6.查看指定时间内的日志文件(格式根据自己的日志格式复制)

一.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…

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命令进行文件分割(按行分割)

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'

在这里插入图片描述

相关文章:

sed编辑器

文章目录 一.sed命令基础1.sed概念2.sed的工作流程3.命令格式4.sed命令的常用选项5.sed命令的操作符 二.sed命令的打印功能1.打印文本文件内容1.1 格式1.2 默认打印方式 2.指定行打印2.1 指定行号打印2.2 只打印文件的行数2.3 即打印文件的行号也打印文件的内容2.4 即显示行也显…...

深入理解深度学习——正则化(Regularization):稀疏表示

分类目录&#xff1a;《深入理解深度学习》总目录 另一种策略是惩罚神经网络中的激活单元&#xff0c;稀疏化激活单元。这种策略间接地对模型参数施加了复杂惩罚。我们已经在《深入理解深度学习——正则化&#xff08;Regularization&#xff09;&#xff1a;参数范数惩罚》中讨…...

【Android】分别用JAVA和Kotlin实现横向扫描的动画效果

Android 横向扫描的动画可以通过使用 ViewPropertyAnimator 和 ObjectAnimator 来实现。 首先&#xff0c;在 XML 布局文件中创建一个 ImageView&#xff0c;并设置其宽度为 0dp&#xff0c;高度为 match_parent。然后&#xff0c;创建一个横向的渐变色 Drawable&#xff0c;并…...

长尾词挖掘,如何选择精准的长尾词优化?

长尾词的挖掘也是一门大学问&#xff0c;它存在多种不同的方法。最常用的方法是把关键词直接放搜索引擎的搜索框搜索和使用长尾词挖掘工具这两种。 以运动水壶为例。 关键词直接放搜索引擎的搜索框搜索&#xff0c;结果如下&#xff1a; 使用长尾词挖掘工具&#xff0c;…...

Python相关环境变量配置和模拟手机app登录

【java环境变量配置】 接着&#xff0c;打开系统->高级系统设置->环境变量。新建一个JAVA_HOME C:\Program Files\Java\jdk1.8.0_201&#xff08;这里是你的安装路径&#xff0c;最好复制粘贴&#xff09; 然后在Path下添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 然后…...

c++ 11标准模板(STL) std::map(九)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…...

深入探索chatGPT插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder

1. 引言 在这个日益依赖技术的世界中&#xff0c;AI插件已经成为了我们日常生活和工作的重要组成部分。在这篇博客中&#xff0c;我们将深入探索三个强大的AI插件&#xff1a;SceneXplain&#xff0c;Wolfram&#xff0c;和AppyPieAIAppBuilder&#xff0c;了解他们的功能&…...

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

一、题目描述 特定大小的停车场&#xff0c;数组cars[]表示&#xff0c;其中1表示有车&#xff0c;0表示没车。 车辆大小不一&#xff0c;小车占一个车位&#xff08;长度1&#xff09;&#xff0c;货车占两个车位&#xff08;长度2&#xff09;&#xff0c;卡车占三个车位&a…...

第二章:MySQL环境搭建

第二章&#xff1a;MySQL环境搭建 2.1&#xff1a;MySQL的下载、安装、配置 MySQL的四大版本 MySQL Community Server社区版本&#xff1a;开源免费、自由下载&#xff0c;但不提供官方技术支持&#xff0c;适用于大多数普通用户。MySQL Enterprise Edition企业版本&#xff1…...

生产环境之负载均衡LVS+keepalived方案(2)_LVS介绍

LVS简介 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;linux内核2.6.X之后的版本默认已集成了LVS模块&#xff08;内核模块名为&#xff1a;ipvs&#xff09;&#xff0c;实现了基于传输层的请求负载均衡调度方案&#xff0c;LVS支持的工作模…...

【parsel】------- PYTHON爬虫基础4

parsel 这个库可以对 HTML 和 XML 进行解析&#xff0c;并支持使用 XPath 和 CSS Selector 对内容进行提取和修改&#xff0c;同时它还融合了正则表达式提取的功能。 内容目录 from parsel import Selector提取节点提取 class 包含 item-0 的节点 提取文本获取提取到的所有 li…...

MySQL数据库从入门到精通学习第8天(表数据的查询)

表数据的查询 基本查询语句单表查询聚合函数查询多表连接查询子查询合并查询结果定义表和字段的别名使用正则表达式查询 基本查询语句 SELECT 语句非常的强大&#xff0c;是最常用的查询语句。他具有一个固定的格式&#xff0c;如下&#xff1a; SELECT 查询的内容 FROM 数据…...

什么是IPAM?如何使用IPAM来管理IP地址和DHCP?

在计算机网络中&#xff0c;IPAM&#xff08;IP Address Management&#xff09;是一种用于管理IP地址和DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;的工具或系统。IPAM旨在简化和集中管理IP地址分配、子网划分和DHCP配置等任务。本文将详细介绍IPAM的概…...

PCIE学习

目录 一、PCIE结构1、层次结构2、数据包TLPDLLP PCIE寄存器配置1、基址寄存器的作用2、基址寄存器的位置 三、PCIE读取数据 一、PCIE结构 1、层次结构 绝大多数的总线或者接口&#xff0c;都是采用分层实现的。PCIe也不例外&#xff0c;它的层次结构如下&#xff1a; PCIe定…...

商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型

AGI时代的到来&#xff0c;市场风云变幻&#xff0c;世界正在经历着一场技术革命的颠覆性洗礼。 2023年6月6日6时&#xff0c;数说故事正式对外发布数说故事“SocialGPT”&#xff0c;国内首个专注Social领域的商业大模型。数说故事“SocialGPT”大家昵称它为“社牛”大模型&a…...

STM32HAL库RS485-ModBus协议控制伺服电机

STM32HAL库RS485-ModBus协议控制伺服电机 一个月前&#xff0c;接手了一个学长的毕设小车&#xff0c;小车采用rs485通信的modbus协议驱动轮毂电机&#xff0c;与往常我学习的pwm控制电机方法大相径庭&#xff0c;在这里以这篇博客记录下该学习过程。 小车主要架构 电机型号 …...

【医学图像】图像分割系列.3 (uncertainty)

介绍几篇使用不确定性引导的医学图像分割论文&#xff1a;UA-MT&#xff08;MICCAI2019&#xff09;&#xff0c;SSL4MIS&#xff08;MICCAI2021&#xff09;&#xff0c;UG-MCL&#xff08;AIIM2022&#xff09;. Uncertainty-aware Self-ensembling Model for Semi-supervise…...

Java有线程安全的set吗?

在Java中&#xff0c;有线程安全的Set实现。一个常用的线程安全的Set实现是ConcurrentSkipListSet。ConcurrentSkipListSet是一个有序的集合&#xff0c;基于跳表(SkipList)的数据结构实现。它提供了线程安全的操作&#xff0c;并且具有较好的性能。 接下来笔者用一段简单的Jav…...

《HelloGitHub》第 86 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …...

LDGRB-01 3BSE013177R1 将数字输入和继电器输出结合

LDGRB-01 3BSE013177R1包的一部分是全面的通信选项&#xff0c;包括Modbus主/从或CS31&#xff0c;这种产品很少提供。128kB的用户内存和0.1秒/指令的程序处理时间只是AC500-eCo令人印象深刻的性能的两个例子。除了与现有AC500系列的互操作性&#xff0c;AC500-eCo系统还使用基…...

手动计算校正年龄、性别后的标准化死亡率 (SMR)

分析队列人群有无死亡人数超额&#xff0c;通常应用标准人群死亡率来校正&#xff0c;即刻观察到中的实际死亡数&#xff08;D&#xff09;与定一个标准的死亡人数&#xff08;E&#xff09;&#xff0c;D与E之比称为死亡比&#xff08;standarized Mortality ratio&#xff0c…...

Java组合模式:构建多层次公司组织架构

在现实生活中&#xff0c;常常会遇到用树形结构组织的一些场景&#xff0c;比如国家省市&#xff0c;学校班级&#xff0c;文件目录&#xff0c;分级导航菜单&#xff0c;以及典型的公司组织架构&#xff0c;整个层次结构自顶向下呈现一颗倒置的树。这种树形结构在面向对象的世…...

Langchain-ChatGLM:基于本地知识库问答

文章目录 ChatGLM与Langchain简介ChatGLM-6B简介ChatGLM-6B是什么ChatGLM-6B具备的能力ChatGLM-6B具备的应用 Langchain简介Langchain是什么Langchain的核心模块Langchain的应用场景 ChatGLM与Langchain项目介绍知识库问答实现步骤ChatGLM与Langchain项目特点 项目主体结构项目…...

设计模式十 适配器模式

适配器模式 适配器模式是一种结构型设计模式。作用&#xff1a;当接口无法和类匹配到一起工作时&#xff0c;通过适配器将接口变换成可以和类匹配到一起的接口。&#xff08;注&#xff1a;适配器模式主要解决接口兼容性问题&#xff09; 适配器的优点与缺点&#xff1a; 优…...

1.6 初探JdbcTemplate操作

一、JdbcTemplate案例演示 1、创建数据库与表 &#xff08;1&#xff09;创建数据库 执行命令&#xff1a;CREATE DATABASE simonshop DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 或者利用菜单方式创建数据库 - simonshop 打开数据库simonshop &#x…...

为什么要用线程池?

线程池是一种管理和复用线程资源的机制&#xff0c;它由一个线程池管理器和一组工作线程组成。线程池管理器负责创建和销毁线程池&#xff0c;以及管理线程池中的工作线程。工作线程则负责执行具体的任务。 线程池的主要作用是管理和复用线程资源&#xff0c;避免了线程的频繁…...

c语言的预处理和编译

预处理 文件包含 当预处理器发现#include指令时&#xff0c;会查看后面的文件名并把文件的内容包含到当前文件中 两种写法 尖括号&#xff1a;引用的是编译器的库路径里面的头文件。 双引号&#xff1a;引用的是程序目录中相对路径中的头文件&#xff0c;如果找不到再去上面…...

网络安全必学 SQL 注入

1.1 .Sql 注入攻击原理 SQL 注入漏洞可以说是在企业运营中会遇到的最具破坏性的漏洞之一&#xff0c;它也是目前被利用得最多的漏洞。要学会如何防御 SQL 注入&#xff0c;首先我们要学习它的原理。 针对 SQL 注入的攻击行为可描述为通过在用户可控参数中注入 SQL 语法&#x…...

Docker基础知识详解

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;文章 &#x1f96d;本文内容&am…...

腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

6月5日&#xff0c;香港交易所发布公告&#xff0c;将于6月19日在香港证券市场推出“港币&#xff0d;人民币双柜台模式”&#xff0c;当日确定有21只证券指定为双柜台证券。同时&#xff0c;港交所还表示&#xff0c;在双柜台模式推出前&#xff0c;更多证券或会被接纳并加入双…...