这是使用awk在模式匹配后删除下一行的方法
cat file
Axis
Invoice Amount Locker
489 849560.94 12
Wednesday, August 2014 Page 1## to delete
UB99
Invoice Amount Locker
512 1204873.89 99
Monday, February 2014 Page 4## to delete
awk '/^Invoice/ {i=2} i--!=1' file
Axis
Invoice Amount Locker
Wednesday, August 2014 Page 1## to delete
UB99
Invoice Amount Locker
Monday, February 2014 Page 4## to delete
如果你想删除下两跳:只需增加i
awk '/^Invoice/ {i=3} i--!=1' file
Axis
Invoice Amount Locker
489 849560.94 12
UB99
Invoice Amount Locker
512 1204873.89 99
这是另一种方式。其存储行号并删除我们不想要的:
awk '/^Invoice/ {n=NR} !(n && NR==n+1)' file
Axis
Invoice Amount Locker
Wednesday, August 2014 Page 1## to delete
UB99
Invoice Amount Locker
Monday, February 2014 Page 4## to delete
awk '/^Invoice/ {n=NR} !(n && NR==n+2)' file
Axis
Invoice Amount Locker
489 849560.94 12
UB99
Invoice Amount Locker
512 1204873.89 99