LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

Гм? Это не скрипт, это однострочник. Прочти уже man bash, в конце концов.

#!/bin/bash

REGEX="$1"
EXTENSIONS=( mp3 flac ) # допиши сам
BASEDIR="$HOME/Музыка"

FIND_ARGS=( find "$BASEDIR" -type f '(' )

for ext in "${EXTENSIONS[@]}"; do
    FIND_ARGS+=( -iname "*.$ext" -or )
done

FIND_ARGS[${#FIND_ARGS[@]} - 1]=')' # remove last -or, add closing parenthesis

FIND_ARGS+=( -regextype posix-egrep -regex "$REGEX" )

"${FIND_ARGS[@]}"

Согласно man 1 find, регулярное выражение будет сопоставляться с полным путём к файлу, а не только с его именем (т. е. использовать ^ не стоит).

Исправление intelfx, :

Гм? Это не скрипт, это однострочник. Прочти уже man bash, в конце концов.

#!/bin/bash

REGEX="$1"
EXTENSION="${2:-mp3}"
BASEDIR="$HOME/Музыка"

find "$BASEDIR" -iname "*.$EXTENSION" -regextype posix-egrep -regex "$REGEX"

Согласно man 1 find, регулярное выражение будет сопоставляться с полным путём к файлу, а не только с его именем (т. е. использовать ^ не стоит).

Исходная версия intelfx, :

Гм?

#!/bin/bash

REGEX="$1"
EXTENSION="${2:-mp3}"
BASEDIR="$HOME/Музыка"

find "$BASEDIR" -iname "*.$EXTENSION" -regextype posix-egrep -regex "$REGEX"

Согласно man 1 find, регулярное выражение будет сопоставляться с полным путём к файлу, а не только с его именем (т. е. использовать ^ не стоит).