Descompacte arquivos individuais de vários arquivos zip e extraia esses arquivos individuais para o diretório inicial

1

Eu gostaria de descompactar arquivos individuais. Esses arquivos têm uma extensão .txt. Esses arquivos também residem em vários arquivos compactados. Aqui está o comando que estou tentando usar.

unzip -jn /path/to/zipped/files/zipArchiveFile2011\*.zip /path/to/specific/individual/files/myfiles2011*.txt -d /path/to/home/directory/for/extract/

Pelo que entendi, a opção -j exclui diretórios e extrai apenas os arquivos txt. A opção -n não sobrescreverá um arquivo se ele já tiver sido extraído. Eu também aprendi que a barra em /path/to/zipped/files/zipArchiveFile2011\*.zip é necessária para escapar do caractere curinga (*).

Aqui está uma amostra de mensagens de erro que eu estou passando:

Archive: /path/to/zipped/files/zipArchiveFile20110808.zip caution: filename not matched: /path/to/specific/individual/files/myfiles20110807.txt caution: filename not matched: /path/to/specific/individual/files/myfiles20110808.txt Archive: /path/to/zipped/files/zipArchiveFile20110809.zip caution: filename not matched: /path/to/specific/individual/files/myfiles20110810.txt caution: filename not matched: /path/to/specific/individual/files/myfiles20110809.txt

Eu sinto que estou sentindo falta de algo muito simples. Eu tentei usar aspas simples (') e aspas duplas (") em torno de caminhos de diretório. Mas sem sorte.

    
por fixer1234 11.08.2011 / 16:33

3 respostas

2

Para o comando unzip com expressão de intervalo no nome do arquivo, precisamos escapar do formato do intervalo e do caractere curinga no nome do arquivo de destino, por exemplo, para descompactar arquivos com extensão txt em order0710.zip, ... order0715.zip na pasta txt_pool, devemos emitir o comando assim:

unzip -jn order071\[0-5].zip \*.txt -d txt_pool
    
por 18.07.2014 / 05:00
1

Acho que você também deve citar o * na lista de arquivos. O comando deve ser algo assim:

unzip -jn /path/to/zipped/files/zipArchiveFile2011\*.zip
      /path/to/specific/individual/files/myfiles2011\*.txt 
      -d /path/to/home/directory/for/extract/

Se não citar o segundo * bash, expande e coloca os nomes dos arquivos. Você pode verificar o valor que é passado para o comando usando echo :

echo /path/to/specific/individual/files/myfiles2011*.txt
    
por 11.08.2011 / 20:24
0

Você tentou o WinRar?

Basta criar um arquivo em lote chamado unrar.bat

c: md \ unrar cd \ unrar "C: \ Arquivos de Programas (x86) \ WinRAR \ unrar.exe" e% 1 iniciar c: \ unrar

Agora clique com o botão direito do mouse em qualquer arquivo .zip e escolha Abrir com ... Navegue pelo unrar.bat

Espero que você veja a ideia.

P.S: Você pode criar um shotcut na barra de tarefas / quicklaunch e depois arrastar os arquivos sobre o ícone do arquivo .bat - em vez de clicar com o botão direito do mouse ...

Se você não quiser os diretórios, faça uma busca no final com a máscara * .txt. Todos os arquivos txt serão listados, agora você pode facilmente selecionar / recortar / colá-los.

    
por 21.08.2011 / 01:27

Tags