ls <text.txt (с файлами в subdir и разрешении файлов)

Долговременный наблюдатель, в первый раз корреспондент!

Я не могу найти следующее: Я хотел бы сделать текстовый файл, который заполнен именами файлов включая тех в subdir's, их путь и и метаданные (особенно разрешение видео). Все это от консоли.

Я не мог найти что-то подобным, только что-то названный mediainfo, который рядом, но только работает на 1 файл насколько я вижу.

Кто-то мог указать на меня в правильном направлении? Спасибо за внимание!Удачи

И держите руки моего вопроса.

1
задан 27 August 2018 в 18:12

2 ответа

В целом путь каждый принимает управление с 1 аргументом (mediainfo foo) и применяет его к набору файлов, с find и xargs. Посмотрите man find;man xargs.

Я использую NUL-завершенные опции (-print0 и -0) потому что Вы не сказали, что никакое имя файла не имело пробелы.

find . -type f -print0 | xargs -0 -n 1 mediainfo
2
ответ дан 3 December 2019 в 07:23

mediainfo является отличным выбором для получения этой информации. Я бы использовал скрипт, чтобы убедиться, что я получаю нужные результаты в одном файле, а затем повторяю его в нужной области. Вот пример, который я назвал 1linenfo.sh и поместил в мой каталог ~/bin:

Как и во всех сценариях, которые вы планируете выполнять, вам придется изменить разрешения на исполняемый файл. в данном конкретном случае это будет chmod +x ~/bin/1linenfo.sh

#! /bin/bash
pfx=$(mediainfo --Inform="General;%CompleteName%" "$1")
sfx=$(mediainfo --Inform="Video;%Width%x%Height%" "$1")
Title="$pfx $sfx" #build desired line of output
echo "$Title" #output

Вышеприведенная информация включает в себя информацию, которую вы хотите, но вы можете легко добавить больше. Для более подробного выбора выходных данных проверьте выходные данные mediainfo --Info-Parameters

. Вы можете легко использовать find для итерации по желаемой области действия.

find . -type f -exec bash -c '1linenfo.sh "{}"' \;

Если вам нужно перенаправить вывод в файл, вы можете сделать что-то вроде этого:

find . -type f -exec bash -c '1linenfo.sh "{}"' \;>report.txt

Если что-то об этом ответе неясно, оставьте мне комментарий, и я сделаю все возможное, чтобы уточнить.

1
ответ дан 3 December 2019 в 07:23

Другие вопросы по тегам:

Похожие вопросы: