Estou tentando fazer um script que irá mesclar duas legendas.
file.srt
file.forced.srt
file2.srt
file2.Forced.srt
Eu tenho um case insensitive para combinar as duas legendas forçadas.
shopt -s extglob
shopt -s nocaseglob
for file in "${1%/}/"*forced.srt; do
echo File: "$file"
done
Eu tenho esse código para remover a string forçada do nome do arquivo, então recebo o arquivo correspondente para usar no meu script
subs=${file//.Forced/}
Como posso remover essa string forced
da minha variável, não diferencia maiúsculas de minúsculas?
Você quer a
nocasematch
opção shell aqui, em vez de (apenas)nocaseglob
:nocaseglob
é apenas para expansão de nome de arquivo verdadeiro (como você usou em seu loop for), mas não se aplica a outros lugares em que a correspondência de padrões ocorre. Para o seu caso de uso, você realmente precisa de ambos habilitados para que a expansão do nome do arquivo e a correspondência do padrão o façam.Para apenas aqueles dois caracteres naquele local, você pode usar
[Ff]
para combinar os doisF
ef
lá.