Uma maneira de fazer isso é:
grep -oP '\hai-c"\h\Kid="[^-]*' input.file | sed -e 's/$/"/'
Onde usamos GNU grep
com o recurso Perl
ativado e a opção -o
para gerar apenas a (s) matche (s), em vez da linha inteira padrão quando uma correspondência é encontrada.
Saída:
id="3af3a73f26a63a"
id="7ab8273f273e7273f82c2"
id="973a72b72c72df12a2"
id="83hd826ab712cc71"
id="7612364bab72a"