BASH find Question

Mark Phillips mark at phillipsmarketing.biz
Sun Oct 15 08:25:50 MST 2017


Alex,

Thanks for the idea. However, there really aren't any common patterns in
the 120 targets that I can match a regex to.

Mark

On Sun, Oct 15, 2017 at 8:20 AM, Snyder, Alexander J <
alex at misteralexander.com> wrote:

> I did something very similar (BASH/find/ Plex) just the other day! The
> solution Aaron gave will fix it:
>
> "{}" instead of '{}'.
>
> May I also suggest matching the output to a regex pattern. That helps me
> sort with great precision:
>
> ..... -exec bash -c "if [[ "{}" =~ (my)([pattern]{3}) ]]; then doThis;
> fi;" \;
>
> Let me know how it goes!
>
> Thanks,
> Alex.
>
> Sent from my Samsung Galaxy S8+
>
> On Oct 15, 2017 04:08, "Aaron Jones" <retro64xyz at gmail.com> wrote:
>
>> Im just laying in bed, but try double quotes instead of singles and then
>> paste me the exact error if you get one.
>>
>> On Oct 14, 2017, at 10:15 PM, Mark Phillips <mark at phillipsmarketing.biz>
>> wrote:
>>
>> 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
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.org
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.org
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.org
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phxlinux.org/pipermail/plug-discuss/attachments/20171015/7c41ad23/attachment.html>


More information about the PLUG-discuss mailing list