É fácil verificar se a primeira linha começa com #include
in sed:
sed -n '1{/^#include/p};q' file
Ou simplificado:
sed -n '/^#include/p;q' file
Isso terá uma saída apenas se o arquivo contiver #include
na primeira linha. Isso só precisa ler a primeira linha para fazer o teste, então será muito rápido.
Assim, um loop de shell para todos os arquivos (com sed) deve ser assim:
for file in *
do
[ "$(sed -n '/^#include/p;q' "$file")" ] && printf '%s\n' "$file"
done
Se existem apenas arquivos (não diretórios) no pwd.
Se o que você precisa é imprimir todas as linhas do arquivo, uma solução semelhante ao primeiro código postado funcionará:
sed -n '1{/^#include/!q};p' file