Executando o script shell a partir da linha de comando [duplicado]

1

Eu tenho um script perl que converte um arquivo para o formato json e grava a saída em um diretório separado. Aceita 2 parâmetros, nome do arquivo e diretório de saída. O script precisa ser executado em vários arquivos que terminam com uma extensão específica, como .abc.

Eu quero localizar todos os arquivos em um diretório específico com extensão .abc e executar meu script. Eu estou tentando executar a partir da linha de comando

find "path to directory" -name '*.abc' -exec ./ConvertFile {} "output_directory"

O comando retorna find: missing argument to '-exec'

Eu sou novo em ambos os scripts perl e shell. Eu poderia executar o script em cada arquivo individual. No entanto, pode haver dezenas de arquivos em qualquer diretório e eles precisarão ser convertidos rapidamente porque os arquivos originais são alterados com frequência. Alguém pode me dizer o que está errado com a minha entrada na linha de comando? Obrigado

    
por jolema 28.03.2016 / 19:07

1 resposta

3

Você precisa encerrar a chamada -exec com \; . Isso deve fazer o truque.

 find "path to directory" -name '*.abc' -exec ./ConvertFile {} "output_directory" \;
    
por 28.03.2016 / 19:12