我想检查两个连续行中的两个模式(a1 和 a2),如果第二个模式(a2)在下一行中匹配,则删除第一行(具有模式 a1 的行)
输入
a1
b1
a1
a2
c1
c2
a1
b1
a1
a2
输出
a1
b1
a2
c1
c2
a1
b1
a2
答案1
使用sed
,您可以执行一个N;P;D
循环来一起处理两行,如下所示:
sed 'N;s/a1\na2/a2/;P;D'
答案2
会走多远
awk '/a1/ {T = $0; getline; if (!/a2/) print T} 1' file
我懂了?