SED, using variables and in with an array

Posted by S1syphus on Stack Overflow See other posts from Stack Overflow or by S1syphus
Published on 2010-04-21T16:05:52Z Indexed on 2010/04/21 16:43 UTC
Read the original article Hit count: 283

Filed under:
|

What I am trying to do is run the sed on multiple files in the directory Server_Upload, using variables:

AB${count}

Corresponds, to some variables I made that look like:

  echo " AB1 = 2010-10-09Three " 
  echo " AB2 = 2009-3-09Foo " 
  echo " AB3 = Bar " 

And these correspond to each line which contains a word in master.ta, that needs changing in all the text files in Server_Upload.

If you get what I mean... great, I have tried to explain it the best I can, but if you are still miffed I'll give it another go as I found it really hard to convey what I mean.

cd Server_Upload
for fl in *.UP; do
     mv $fl $fl.old
     done

count=1
saveIFS="$IFS"
IFS=$'\n'
array=($(<master.ta))
IFS="$saveIFS"
for i in "${array[@]}"
do
    sed "s/$i/AB${count}/g" $fl.old > $fl
    (( count++ ))
done

It runs, doesn't give me any errors, but it doesn't do what I want, so any ideas?

© Stack Overflow or respective owner

Related posts about sed

Related posts about bash