Вы можете сделать это несколькими способами, два из которых показаны ниже:
$ perl -lne 'print /(?=.*var1:\h+(\H+))(?=.*var2:(\h+\H+))/' input.file
$ sed -e '
H;s/.*//;x
s/.*[[:space:]]var2: \([^[:space:]]\{1,\}\)/\1 &/
s/.*[[:space:]]var1: \([^[:space:]]\{1,\}\)/\1 &/
s/ \n.*//
' input.file
С функциями из GNU sed
мы можем немного упростить:
$ sed -Ee '
s/^/\n/
s/.*\svar2: (\S+)/\1 &/
s/.*\svar1: (\S+)/\1 &/
s/ \n.*//
' input.file
Выход:
xxx bbbb
xxx aaaa
yyy bbbb
xxx aaaa
yyy aaaa
xxx aaaa
zzz bbbb
zzz aaaa