Isso deve funcionar:
unrar e BucketSort.rar | awk '/^Extracting/ {print $2}'
Estou tentando obter o nome do arquivo do comando unrar detalhado e excluindo-os por meio da linha de comando.
A saída do comando unrar é semelhante a esta:
Extracting BucketSort.cpp OK
Extracting BucketSort.vcxproj OK
Extracting BucketSort.vcxproj.filters OK
Extracting BucketSort.lastbuildstate OK
Extracting BucketSort.log OK
Extracting BucketSort.obj OK
Extracting BucketSort.pch OK
Então eu criei este comando awk até agora:
unrar e BucketSort.rar | awk '{if (match($0,/Extracting\s*([\w|.]+)\s*OK/,m)) print m[0]}'
mas nada é impresso. Quando deixo apenas a palavra "Extraindo" para corresponder, consigo ver "Extraindo" para todos os arquivos de extração. Então, não é reconhecer algo escrito em regex, mas não sei o que é. Você sabe o que há de errado com a expressão?
PS: você pode verificar a expressão regex aqui .
Tags awk regular-expression