sed命令删除包含指定字符串行的上一行

2024-11-26 22:52:08
推荐回答(1个)
回答1:

sed -i 'N;/\n.*关键字/!P;D' 文件名

-i 直接对文件进行修改
N; ——多行模式,读入下一行
\n——匹配换行符,保证后面搜索内容是在第二行中
.*关键字 ——点星是任意字符,后面是搜索内容
/ /!P; ——前面的正则没有搜到(没有匹配)则执行多行打印【模式空间中的两行都打印】
D——模式空间中的两行全部删除【并再读入下一行】