删除指定行的上一行和下一行

需求:删除匹配linuxeye.com行的上一行和下一行,下面是使用sed删除指定行的上一行 awk删除指定行的下一行方法:

  1. # cat test.txt
  2. …..
  3. <!–
  4. linuxeye.com
  5. –>
  6. …….

sed删除指定行的上一行

  1. sed -i -e :a -e ‘$!N;s/.*\n\(.*linuxeye.com\)/\1/;ta’ -e ‘P;D’ test.txt

awk删除指定行的下一行

  1. awk ‘!NF{print;next};!/linuxeye.com/;/linuxeye.com/{print;getline;getline;print}’ test.txt

【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!