Isolate lines in a text file and perform replacement
- From: Robert Neville <r0bert_neville310@xxxxxxxxx>
- Date: Fri, 30 Mar 2007 11:06:20 -0700
I developed a shell script for renaming my mp3 files. 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 the 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. I just
need fresh ideas for the shell.
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.
.
- Follow-Ups:
- Re: Isolate lines in a text file and perform replacement
- From: Ed Morton
- Re: Isolate lines in a text file and perform replacement
- Prev by Date: Re: recursively calculate values
- Next by Date: Re: vi error
- Previous by thread: recursively calculate values
- Next by thread: Re: Isolate lines in a text file and perform replacement
- Index(es):
Relevant Pages
|
Loading