obtendo o diretório de um arquivo específico em uma pasta e salvando-o em uma variável

1

Aqui está o meu problema. Eu quero armazenar o diretório de um arquivo específico em uma variável via terminal, mas na minha pasta há muitos arquivos, digamos que um deles é test1432.config e o outro é test1432-busybox.config e os outros arquivos cuja extensão não são. config. Então eu decidi escrever

fst_directory="%s" %(co_directory[3:])+ "/*.config"

Mas se eu fizer isso dessa maneira, também é necessário testar1432-busybox.config? Como eu pude fazer isso? obrigado antecipadamente

EDITAR

As únicas diferenças entre dois arquivos são a parte do busybox. Quero dizer fileName-busybox.config e fileName.config. Eu sempre quero escolher fileName.config

EDIT2

Como ninguém compartilha a solução. Eu criei o meu próprio. Neste caso, o busybox não é necessário para mim. Então eu decidi deletá-los e depois disso eu posso escolher o verdadeiro arquivo easly. Se o arquivo for importante e você não puder excluí-lo, você poderá movê-lo para outro local e voltar após a operação.

    
por caesar 23.08.2013 / 14:00

1 resposta

2

Supondo que você tenha dois arquivos, um que você deseja listar / usar e um que você deseja ignorar com o que ignorar contendo - em seu nome de arquivo como em -busybox:

 ls *.config | grep -v '-'

Da página man sobre grep -v option:

      -v, --invert-match
          Invert  the  sense  of matching, to select non-matching lines.  (-v is specified by
          POSIX.)

O que basicamente significa listar todos os arquivos que terminam com .config , pipe para grep e excluir aqueles contendo -

Ou algo que dá mais controle sobre a seleção:

 ls | grep ".*[^-busybox].config"

O que significa:

Lista todos os arquivos no diretório canalizam para grep e, usando uma expressão regular, os filtram para incluir * para tudo, mas não para os que estão entre parênteses [^-busybox] , terminando com .config

[^] exclui.

    
por Stef K 23.08.2013 / 14:28