美文网首页
sed命令应用场景

sed命令应用场景

作者: 欧阳_z | 来源:发表于2020-08-19 20:30 被阅读0次

1、sed删除字符串

(1)描述
做嵌入式开发,有时候需要分析开机 log,比如一份正常情况下的 log 与一份异常的 log 做对比,如果放到 Beyond Compare 中对比,会看到一大片都是红色的差异,因为 kernel 通常在每行 log 前面加了时间作为前缀,比如[ 5.301219],所以需要删除这些时间,才能让 log 看起来比较干净,这里可以用 sed 命令来处理.

(2)分析
在 kernel 源代码的 print_time 函数中:
https://elixir.bootlin.com/linux/v5.0/source/kernel/printk/printk.c
可以看到时间的输出格式为 [%5lu.%06lu]%lulong unsigned int 可能是 48 字节,不同平台不同实现,最多 8 字节,也就是说十进制状态下最长 20 位,长度不足的情况下,%5lu补空格,%06lu0

正则表达式中,元字符 \s 匹配任何空白字符,
*匹配前面的子表达式零次或多次。
中括号[]可以匹配范围字符,
大括号{n,m}可以匹配次数,最少匹配 n 次且最多匹配 m 次。
. 可匹配任意字符,所以这里需要用 \ 转义,
^ 匹配字符串的开始位置,这样不会影响到中间的部分,
综上,sed 命令可以这样写:

$ cat putty.log
[    5.301219] 123
[    5.001219] 456
[12345.001219] abc
[12345.301219] de
abc[12345678.12345678] fgh
[12345678.12345678] ijk
$ 
$ sed -i 's/^\[\s*[0-9]\{1,20\}\.[0-9]\{1,20\}\]\s//' putty.log
$ cat putty.log
123
456
abc
de
abc[12345678.12345678] fgh
ijk
$ 

相关文章

  • sed命令应用场景

    1、sed删除字符串 (1)描述做嵌入式开发,有时候需要分析开机 log,比如一份正常情况下的 log 与一份异常...

  • Sed命令应用

    1. 概述 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删...

  • linux || sed(2)

    调用sed有三种方式: 在命令行键入命令; 将sed命令插入脚本文件,然后调用sed; 将sed命令插入脚本文件,...

  • sed命令

    sed命令 对比用paste和tr命令将fastq文件转换为fasta文件 paste sed命令 sed用法

  • 【linux命令之sed】

    sed的选项、命令、替换标记 命令格式 sed [options] 'command' file(s)sed [o...

  • linux sed

    Sed简介 定址 Sed命令

  • LINUX sed命令的使用

    LINUX sed命令的使用 命令格式 sed常用命令 sed替换标记 sed元字符集 已匹配字符串标记& ⼦串匹...

  • redis 五种数据类型的使用场景

    String 常用命令: 应用场景: 实现方式: Hash 常用命令: 应用场景: 实现方式: List 常用命令...

  • Linux-sed-1

    #############20190820- sed命令用法详解 sed命令用法 sed是一种流编辑器,它是文本处...

  • [2020春假]Linux下的文本操作(sed篇)

    Chapter4 sed替换命令详解 sed的替换命令是最常用的,也是讲解最多的。sed的模式空间 sed的基本工...

网友评论

      本文标题:sed命令应用场景

      本文链接:https://www.haomeiwen.com/subject/zcidjktx.html