Correspondência de regex no awk na linha de comando

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 .

    
por Rinaldi Segecin 11.02.2016 / 20:26

1 resposta

2

Isso deve funcionar:

unrar e BucketSort.rar | awk '/^Extracting/ {print $2}'
    
por 11.02.2016 / 20:57