Что если в первой строке тоже содержится bar
?Тогда это напечатано два раза с вашей версией.awk
решение:
awk 'NR == 1 { print } NR > 1 && $0 ~ "bar" { print }' FILE
Если вы хотите, чтобы строка поиска была почти последним элементом строки:
awk 'ARGIND > 1 { exit } NR == 1 { print } NR > 1 && $0 ~ ARGV[2] { print }' FILE YOURSEARCHSTRING 2>/dev/null
sed
решение:
sed -n '1p;1d;/bar/p' FILE
Преимущество для них обоих в том, что это один процесс.