R
Robert Neville
I developed a shell script for renaming my mp3 files. I understand
that this newsgroup revolves around Perl, yet my script uses Perl for
full regular expression support (so I don't have to escape the
patterns in sed). I just need fresh ideas for my shell script, which
may involve the Perl portions.
The script uses Perl and regular expressions to normalize the file
names. The patterns reside in a preset file. My current development
efforts involve applying these regex patterns to playlist and xml
files. I want to process the text inside these files. Eventually, the
script would help me rename my itunes database, yet it has several
purposes beyond mp3 renaming.
The script performs a recursive search and finds files with these
extensions (m3u, sfv, and xml). It iterates (while loop) through an
external file with regular expression patterns. Then it combines the
patterns and placed them in a variable, which is passed to Perl. The
script below performs this task (yet has not been thorough tested). It
has a major shortcoming that the Perl line works on the entire file
when it should only replace the lines with mp3 pointers. Here's the
call for assistance since I am having code block. Maybe, someone could
help me with different logic or a traditional grep solution.
find ./ -regex ".*\(m3u\|sfv\|xml\)$" -type f -print | while read FILE
do
while read -r REGEX REPLACE line
do
CODE="$CODE; s/$REGEX/$REPLACE/g"
done < "$PRESET"
echo "$CODE"
echo "perl -pi.bak -e "s/$REGEX/$REPLACE/g" $FILE"
#PRESET may contain over twenty five regex patterns
done
btw I am doing this script in Bash, because Perl is foreign territory.
that this newsgroup revolves around Perl, yet my script uses Perl for
full regular expression support (so I don't have to escape the
patterns in sed). I just need fresh ideas for my shell script, which
may involve the Perl portions.
The script uses Perl and regular expressions to normalize the file
names. The patterns reside in a preset file. My current development
efforts involve applying these regex patterns to playlist and xml
files. I want to process the text inside these files. Eventually, the
script would help me rename my itunes database, yet it has several
purposes beyond mp3 renaming.
The script performs a recursive search and finds files with these
extensions (m3u, sfv, and xml). It iterates (while loop) through an
external file with regular expression patterns. Then it combines the
patterns and placed them in a variable, which is passed to Perl. The
script below performs this task (yet has not been thorough tested). It
has a major shortcoming that the Perl line works on the entire file
when it should only replace the lines with mp3 pointers. Here's the
call for assistance since I am having code block. Maybe, someone could
help me with different logic or a traditional grep solution.
find ./ -regex ".*\(m3u\|sfv\|xml\)$" -type f -print | while read FILE
do
while read -r REGEX REPLACE line
do
CODE="$CODE; s/$REGEX/$REPLACE/g"
done < "$PRESET"
echo "$CODE"
echo "perl -pi.bak -e "s/$REGEX/$REPLACE/g" $FILE"
#PRESET may contain over twenty five regex patterns
done
btw I am doing this script in Bash, because Perl is foreign territory.