Linux 删除文件中匹配的行
背景:跑了个脚本但是有很多特殊的情况,这种情况需要忽略,但是我需要把日志里的错误都拿错来,错误中穿插了特殊情况,复制的时候就得一直中断,很麻烦。例如:err1err2err3xxxx 0nilerr4err5xxxx 0nil就不能一下拉到底一起复制,所以就研究了下,Linux 可以通过命令,删除文件中匹配到的行。seqsed -i ‘/preSql/d’ a.txt删除匹配到preSql的行se
背景:
跑了个脚本但是有很多特殊的情况,这种情况需要忽略,但是我需要把日志里的错误都拿错来,错误中穿插了特殊情况,复制的时候就得一直中断,很麻烦。
例如:
err1
err2
err3
xxxx 0 nil
err4
err5
xxxx 0 nil
就不能一下拉到底一起复制,所以就研究了下,Linux 可以通过命令,删除文件中匹配到的行。
seq
-
sed -i ‘/preSql/d’ a.txt
删除匹配到preSql的行
-
sed -i ‘1d’ a.txt
删除第一行
-
sed -i ‘3~2d’ a.txt
从第三行开始,每隔一行删除
-
sed -i ‘4,8d’ a.txt
删除从第4行到第8行
-
sed -i ‘$d’ a.txt
删除最后一行
-
sed ‘/^$/d’ a.txt
删除所有空行
-
sed -i ‘/Website Design/,$d’ a.txt
从匹配行到末尾行
-
sed -i ‘/Storage/,+2d’ a.txt
删除匹配行和之后两行
使用
比如我需要把匹配到 0 nil 的所有行删除掉,就可以使用第一种使用方式:
sed -i ‘/0 nil/d’ log.txt
文件就会变成这样
err1
err2
err3
err4
err5
叮~🔔
更多推荐
所有评论(0)