在我的文件中,我有这样的图案
always @(clock)
some code here
always @(clock)
some code here
always @(clock)
some code here
my buggy line
always @(clock)
我需要删除最后一条总是行+我的越野车行。 请建议
答案 0 :(得分:0)
这可能适用于哟(GNU sed):
sed -z 's/\(.*\)\n[^\n]*\nalways @(clock)/\1/' file
将整个文件保存到内存中,并使用贪婪删除包含always @(clock)
的最后一行及其前一行。
答案 1 :(得分:0)
这会删除最后的always
行以及所有带有buggy
的行
tac file | awk '!f && /always/ {f=1;next} !/byggy/' | tac
tac
将文件上下颠倒。
删除第一个always
,设置标记f
并跳到下一个。
如果不是buggy
打印行。
tac
将其改回正确的方向。
仅使用awk
awk '!/buggy/ {a[++i]=$0} /always/ {f=NR} END {for (j=1;j<=i;j++) if (j!=i) print a[j]}' file