背景:

跑了个脚本但是有很多特殊的情况,这种情况需要忽略,但是我需要把日志里的错误都拿错来,错误中穿插了特殊情况,复制的时候就得一直中断,很麻烦。
例如:
err1
err2
err3
xxxx 0 nil
err4
err5
xxxx 0 nil
就不能一下拉到底一起复制,所以就研究了下,Linux 可以通过命令,删除文件中匹配到的行。

seq

  1. sed -i ‘/preSql/d’ a.txt

    删除匹配到preSql的行

  2. sed -i ‘1d’ a.txt

    删除第一行

  3. sed -i ‘3~2d’ a.txt

    从第三行开始,每隔一行删除

  4. sed -i ‘4,8d’ a.txt

    删除从第4行到第8行

  5. sed -i ‘$d’ a.txt

    删除最后一行

  6. sed ‘/^$/d’ a.txt

    删除所有空行

  7. sed -i ‘/Website Design/,$d’ a.txt

    从匹配行到末尾行

  8. sed -i ‘/Storage/,+2d’ a.txt

    删除匹配行和之后两行

使用

比如我需要把匹配到 0 nil 的所有行删除掉,就可以使用第一种使用方式:
sed -i ‘/0 nil/d’ log.txt
文件就会变成这样
err1
err2
err3
err4
err5
叮~🔔

Logo

更多推荐