2007-11-18 マッチした前の行の表示 Netnews reading previous lines after reaching certain string マッチした前の行 3 行を表示したいというものです。 awk ではファイルハンドルとかでジャンプすることはできませんから、最初から配列に押し込めながら処理する手法が一般的で、そうした解法が示されています。 awk '{a[NR]=$0}$0~/string/{printf("%s\n%s\n%s\n",a[NR-3],a[NR-2],a[NR-1])}' file