#! /usr/bin/gawk -f BEGIN { if (key == "") { printf "must specify -v 'key=xxx'\n"; exit 1 } for (i=-5; i <= 5; i++) wd[i] = "" } function push(x, i) { for (i=-5; i <= 4; i++) wd[i] = wd[i+1]; wd[5] = x; if (wd[0] == key) { len = 50; for (i=-5; i < 0; i++) len -= length(wd[i]); for (i= 0; i < len; i++) printf " "; for (i=-5; i <= 5; i++) printf "%s ", wd[i]; printf "\n"; } } /./ { push($0); } END { for(i=1; i<=5; i++) push(""); }