sed

sed
行编辑器,对行进行处理,之后再处理下一行。处理完成后输出到屏幕,此时源文件没有任何改变(不执行写操作)。
定址,决定对那些行进行编辑。地址的形式可以是数字、正则表达式、或者二者的结合。如果没有指定地址,sed将处理输入的所有行。

命令参数

参数含义
pprint
ddelete
=打印匹配行的行号
-n取消默认的完整输出,只要需要的
-e允许多项编辑
-i修改文件内容
-r启用扩展的正则表达式,若与其他选项一起使用,应作为首个选项
&注意,在替换中使用,这个符号在sed中代表上一次匹配的结果
$最后一行

源文件

fru_2048: ---------------------------------------------------
fru_2048: No:       38
fru_2048: Reason:   Ordered restart
fru_2048: Time:     2019-05-21 18:22:56
fru_2048: Program:  bc-server
fru_2048: Pid:      -
fru_2048: Rank:     Cold
fru_2048: Signal:   -
fru_2048: PMD:      -
fru_2048: Extra:    Application ordered restart, faultId: 0xf06e (Restart), faultDescription: Application ordered restart
fru_2049: ---------------------------------------------------
fru_2049: No:       39
fru_2049: Reason:   Program Crash
fru_2049: Time:     2019-05-21 18:51:54
fru_2049: Program:  rccBbrsNrArm
fru_2049: Pid:      2407
fru_2049: Rank:     -
fru_2049: Signal:   11
fru_2049: PMD:      /var/log/pmd/pmd-rccBbrsNrArm-2407-20190521-185143.tgz
fru_2049: Extra:    CXP2030006%7_R8B18
fru_2049: ---------------------------------------------------

/str/ 匹配
s/str1/str2/g 替换(g: 一行中可进行多次匹配替换)

输出[p]

  1. 输出第4行
    -在这里插入图片描述
    注意一定要使用参数-n来取消默认的完整输出,否则全部打印

  2. 输出8~14行
    在这里插入图片描述

  3. 过滤特定字符串
    在这里插入图片描述
    注意: 字符串要用//括起来,执行匹配命令

  4. 输出Reason行到Time行在这里插入图片描述
    如果没有找到结尾匹配项,则从开始项往后都输出

  5. 显示行号
    -e 每个命令(’…’)都要用一个-e, “=”是显示所有行号
    在这里插入图片描述

  6. 只显示匹配行号
    在这里插入图片描述

  7. 显示匹配内容和匹配行号
    在这里插入图片描述

  8. 输出最后一行
    在这里插入图片描述

替换[s/src/dst/g]

s/old/new/ 将每行的第1 个old替换为new
s/old/new/3 将每行的第3 个old替换为new
s/old/new/g 将所有的old都替换为new
**替换担任的分隔“/”,可改用其他字符,如#、&等,便于修改文件路径**

  1. & 符号在sed命令中代表上次匹配的结果
sed 's/world/hello_&/g' test.log
world都被替换成了hello_world
  1. 在2~5行使用2049替换2048
    在这里插入图片描述

插入字符串

  1. 在文件第一行前添加hahahahah,文件尾添加GGGGGGGG
    在这里插入图片描述
    i是前插, a是后插

删除

删除1到5行,实际仅是不显示而已
在这里插入图片描述
显示命令的格式也适用

正则表达式

-r启用扩展的正则表达式,若与其他选项一起使用,应作为首个选项

在这里插入图片描述

在这里插入图片描述
s#^.*r:(.*) B.*k:(.*)$期望匹配上面输出的整个行,用后面的值替换整个行
IPV4: \1 \nMask: \2#g' \1和\2对应之前正则表达式匹配中的括号配置值

cat llog.txt | sed -r ‘s/.(.$)/AAA\1/’ 把每行的倒数第二个字符替换成AAA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值