BASH find Question

Mark Phillips mark at phillipsmarketing.biz
Sat Oct 14 22:15:17 MST 2017


I found a few (~120) .mkv files crept into my plex movie drive. Plex on my
limited plex server has trouble transcoding these files in real time, so I
need to transcode them into mp4s ahead of time.

I tried this script, but I have an problem with the second find command.

find /media/plex/ -name '*.mkv' | while read line; do
    echo "Processing file '$line'"
    f=`basename "$line" .mkv`
    echo "basename = $f"
    if [ -n "$(find /media/plex/ -name '$f.mp4' )" ]; then
        #ffmpeg -i {} -vcodec copy -acodec copy $f.mp4 > fix2-mkv.txt 2>&1
        #echo {} > files_fixed.txt 2>$1
        echo "**************need to convert $line"
    else
        echo "$f.mp4 already exists"
    fi
done

All of the file names contain special characters, eg '[', and others.

For example,
/media/plex/Movies/Disney (Classic)/Robin Hood (1973 Movie)
[x264-AAC][DVD][C-W].mkv

I get a false negative on this file when I search for the corresponding mp4
file because of the '[' in the file name.

This works:
find /media/plex -name 'Robin Hood (1973 Movie)*'
/media/plex/Movies/Disney (Classic)/Robin Hood (1973 Movie)
[x264-AAC][DVD][C-W].mkv

but this gives a false negative
find /media/plex -name 'Robin Hood (1973 Movie) [x264-AAC]*'
root at orca:/home/mark#

I searched the find man page for ways to handle the special characters, but
no luck on finding a solution. Anyone have a suggestion?

Thanks!

Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phxlinux.org/pipermail/plug-discuss/attachments/20171014/dd06dacb/attachment.html>


More information about the PLUG-discuss mailing list