Localizar tipo de arquivo reverso

1

Na minha pasta de imagem eu quero apenas imagens, então eu vou encontrar todos os arquivos de vídeo "intrusos" usando este comando (encontrado em algum lugar no stackexchange)

find folder/imageonly  -type f -exec file -N -i -- {} + |sed -n 's!: video/[^:]*$!!p'

Mas se eu quiser uma pesquisa inversa? Por exemplo, eu quero encontrar todos os arquivos de vídeo não na pasta de vídeo?

p.s = eu não uso extensões, então sinalizadores "arquivo -N -i .." devem ser usados

    
por elbarna 22.12.2015 / 03:16

2 respostas

1

Adicione um intervalo de endereços ao seu sed :

find folder/imageonly  -type f -exec file -N -i -- {} + |
  sed -n '/: video\/[^:]*$/!s!: [[:alnum:]]*/[^:]*$!!p'

/: video\/[^:]*$/! diz para executar os comandos em todas as linhas que não correspondem ao padrão, que você usou para combinar vídeos.

    
por 22.12.2015 / 03:57
2

Eu usaria apenas o grep em vez de sed (principalmente porque não tenho experiência com sed). Mas o seguinte deve funcionar (e faz no meu sistema):

find .  -type f -exec file -N -i -- {} + | grep -v 'video/' | cut -d : -f 1

Isso espera que não exista : nos nomes dos arquivos.

    
por 22.12.2015 / 03:50

Tags