Se você gostaria de fazer um procedimento regex semelhante no sed:
sed -n 's/.* \([^\s]\{2,\}\.HHF\)//p' log.txt > files.txt
O comportamento padrão do sed é imprimir cada linha no arquivo que você forneceu (neste caso, log.txt). A bandeira -n desativa esse comportamento. O comando s/REGEXPATTERN/REPLACEMENT/ encontrará linhas com uma substring correspondente a REGEXPATTERN e substituirá por REPLACEMENT . Um exemplo de um comando auxiliar no sed para fazer substituições extravagantes é o comando \# , em que # é um inteiro, que substitui a subseqüência da linha correspondente à parte # -th do REGEXPATTERN entre parênteses, começando com 1. Neste caso, ele substituirá a linha inteira apenas pela parte da linha que possui pelo menos dois caracteres que não são espaços em branco seguidos por .HHF . Finalmente, o comando p imprime a linha modificada resultante, neste caso apenas o nome do arquivo. Em seguida, canalizamos a saída com > para um arquivo de texto que terá todo o seu nome de arquivo armazenado, um por linha. Este comando sed supõe que seus arquivos tenham pelo menos dois caracteres antes da terminação .HHF, e assume que os nomes dos arquivos serão precedidos por pelo menos um espaço.