Hi All,
I see similar problems in past threads but so far no answers have worked for me. I am trying to write a script which parses a txt file that contains one filename per line, then finds those files on the local disk and copies them to a specified directory.
What I have:
#!/bin/bash
sed 's/.*/"&"/' filename.txt > /tmp/files
PAT=`more /tmp/files`
for fname in $PAT
do
find / -name "$fname" -type f -print >> /tmp/found
done
CP=`more /tmp/found`
for fname in $CP
do
cp -v "$fname" dest_dir
done
rm -f /tmp/found /tmp/files
Sed parses the file and adds quotes around the filenames (/tmp/files looks fine), but if I echo "$fname" instead of the find command I can see that it breaks up the filenames into separate lines. So if I have "filename1" and "filename 2" it returns:
"filename1"
"filename
2"
How can I get it to parse correctly? Any help is greatly appreciated!
-Navi