Список всех mp3-файлов с битрейтом более 320 кбит/с с помощью bash

Судя по комментарию, у вас нет сжатых файлов, поэтому нет необходимости использовать gunzip. Для просмотра файла вы можете использовать такие команды, как:

cat  /private/var/log/system.log.0

или

more /private/var/log/system.log.0

или

less /private/var/log/system.log.0

То же самое для файла /private/var/log/system.logи других файлов журнала

1
29.02.2020, 23:38
1 ответ

Вот работающий bash-скрипт. Это в основном то, что у вас есть, с несколькими настройками:

#!/bin/bash
set -o pipefail

find. -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do
    BITRATE=$(exiftool -AudioBitrate "$file" | grep -Eo '[0-9]+ kbps' | sed 's/ kbps//')
    if [[ $? -eq 0 ]] && [[ $BITRATE -ge 320 ]]; then
        echo $BITRATE "$file"
    fi
done

При установке переменной $BITRATEя запускаю exiftoolнапрямую через канал и использую $(...)для захвата вывода. Затем в условном я проверяю, был ли каналexiftool-> grepуспешным и битрейт достаточно высок, используя операторы числового сравнения Bash.

Я проверил, что он обрабатывает некоторые случайные .mp3файлы, которые у меня лежат, в том числе файлы с пробелами в имени.

2
28.04.2021, 23:21

Теги

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