Listar MP4 por “file '* .mp4'” para um arquivo .txt

0

Eu quero criar um .txt com todos os arquivos mp4 de uma pasta, mas verticalmente e com

file '/root/mp4/*.mp4'

linha por linha. No Windows é como

(for %i in (*.mp4) do @echo file '%i') > files.txt
    
por mhhhhmaybe 08.05.2018 / 08:19

2 respostas

5

Não sei se entendi bem o objetivo, mas se você quiser que todas as linhas sejam lidas

file '/full/path/to/filename.mp4'

Sugiro usar find desta maneira:

find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n"

Isso pesquisa o diretório de trabalho atual ( ~+ é expandido para o caminho completo por% de Tilde Expansion bash ) para arquivos cujo nome corresponde a *.mp4 e os imprime no formato especificado: "file" seguido por um tab e o nome do arquivo entre aspas simples seguidas por um caractere de nova linha - se você quiser um espaço ao invés da aba, simplesmente substitua \t por um espaço. Se você quiser armazenar a saída em um arquivo files.txt , basta adicionar >files.txt à linha de comando. Observe que isso substituirá silenciosamente qualquer files.txt existente, se você quiser anexar ao arquivo use >>files.txt .

Exemplo de saída

$ find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n"
file    '/home/dessert/test/a.mp4'
file    '/home/dessert/test/b.mp4'
$ find ~+ -type f -name "*.mp4" -printf "file\t'%p'\n" >files.txt
$ cat files.txt 
file    '/home/dessert/test/a.mp4'
file    '/home/dessert/test/b.mp4'

Se, no entanto, você quiser que files.txt contenha a saída de file 'some.mp4' , será possível usar file diretamente:

file *.mp4 >files.txt     # with relative paths
file ~+/*.mp4 >files.txt  # with absolute paths
    
por dessert 08.05.2018 / 08:46
2

Você pode usar:

for i in ./*.mp4; do echo "file" \'$(realpath ${i#*\/})\' >> files.txt; done

Se você não precisa de file na frente de cada nome de arquivo, você pode usar:

ls path/to/files/*.mp4 > files.txt

Resultado do primeiro comando:

file '/home/george/Documents/askubuntu/disk_use.txt'
file '/home/george/Documents/askubuntu/efi_info.txt'
file '/home/george/Documents/askubuntu/empty.txt'
file '/home/george/Documents/askubuntu/fam.txt'

Nota:

  • usei .txt arquivos, o seu .mp4 .
  • Isso é executado a partir da pasta de interesse, se você precisar segmentar outro, por favor, altere a linha for i in ./*.mp4 tp para i em / path / para / files / *. mp4 '.
por George Udosen 08.05.2018 / 08:22