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.