Как сортировать видео по кодеку и выполнять команду

Вы установили версию Python под /usr/local. Теперь вы удалили часть этого. Вы пытаетесь использовать часть, которая все еще присутствует, но она не будет работать без части, которую вы удалили.

Если ваша установка изначально не была чрезвычайно запутанной, /usr/local/bin/pipзапускает /usr/local/bin/python, которая ищет файлы библиотеки в /usr/local/lib/python3.5(, предполагая, что это Python версии 3.5 ). Если вы хотите запустить эту версию Python, вы не можете удалить /usr/local/lib/python3.5. Если вы не хотите запускать эту версию Python, вам нужно удалить все ее файлы. Это означает удаление /usr/local/bin/pythonи всех файлов, которые были установлены вместе с ним, например /usr/local/bin/pip. Вероятно, есть файлы и в других каталогах, например, в /usr/local/manили /usr/local/share/man.

Удаление приложений из /usr/localзатруднительно, поэтому рекомендуется использовать диспетчер пакетов — получить пакеты из дистрибутива Linux или использовать stow . См. Отслеживание программ Так как в вашем случае ущерб был нанесен, вам нужно будет отследить файлы для удаления вручную. Ищите файлы, время модификации которых примерно одинаково.

После того, как вы очистите эту установку Python под /usr/local, запуск pipвызовет /usr/bin/pip, который входит в ваш дистрибутив (, предполагая, что вы установили пакеты Python для своего дистрибутива — если вы еще не, сделай это ).

0
30.08.2019, 21:54
2 ответа

Я нашел ответ!

#!/bin/bash

IFS=$'\n'

# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green

# Bold
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green

for i in $(find /mnt/movies/ -type f -name '*.mkv' -o -name '*.mp4' -o -name '*.wmv' -o -name '*.flv' -o -name '*.webm' -o -name '*.mov'); do
#    ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$i"
    if [ $(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$i") = h264 ]; then
        echo -e "Video is a ${BGreen}H264${Color_Off} video file"
        python2 sickbeard_mp4_automator/manual.py -i "$i" -a
    elif [ $(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$i") == hevc ]; then
        echo -e "Video is already transcoded to ${BRed}HEVC${Color_Off}"
    elif [ $(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$i") == vp8 ]; then
        echo -e "Video is a ${BGreen}WEBM${Color_Off} video file"
        python2 sickbeard_mp4_automator/manual.py -i "$i" -a
    fi
done

Это проверит H264 и перекодирует файл. В противном случае он оставляет его в покое. Спасибо, ребята, за помощь, и я понял, что иногда я могу быть идиотом.:)

0
28.01.2020, 05:04

Вы можете использовать следующую команду:

find /your/path -exec bash -c "if file {} | grep "python"; then cat {} ; fi" \;

Эта команда выполнит fileдля всех найденных файлов, и в случае, если вывод этой команды содержит «python», выполняется cat.

Очевидно, что вы должны адаптировать эту команду к вашим потребностям.

-1
28.01.2020, 05:04

Теги

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