Copy files listed in a text file - whitespace problem.


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Copy files listed in a text file - whitespace problem.

Hi,

Say I have this text file <copy.out> that contains a list of files/directories to be copied out to a different location.

Code:
$ more copy.out
dir1/file1
dir1/file2
dir1/file3
"dir1/white space"
dir1/file4

If I do the following:

Code:
$copy=`more copy.out`

$echo $copy
dir1/file1 dir1/file2 dir1/file3 "dir1/white space" dir1/file4

$cp -v $copy ./temp
dir1/file4 -> ./temp/file4
cp: space": No such file or directory
cp: "dir1/white: No such file or directory
dir1/file3 -> ./temp/file3
dir1/file2 -> ./temp/file2
dir1/file1 -> ./temp/file1

All of the files managed to be copied except for the file with a whitespace.

I have tried using for loop, but the same thing happened.

Code:
$ copy=`while read line; do echo "$line"; done < copy.out`

$ echo $copy
dir1/file1 dir1/file2 dir1/file3 "dir1/white space" dir1/file4

$ cp -v $copy ./temp
dir1/file4 -> ./temp/file4
cp: space": No such file or directory
cp: "dir1/white: No such file or directory
dir1/file3 -> ./temp/file3
dir1/file2 -> ./temp/file2
dir1/file1 -> ./temp/file1


I edited copy.out and replace "dir1/white space" with dir1/white\ space but it didn't work. Just by simply removing the double quotes failed to work either. I understand that by using echo, it will flatten any whitespace in $variable into a single space, so I've tried using double quotes $variable, but again, it failed to copy the file with a whitespace.

I don't like whitespace in files/dirs name, but some people seem to like it, so I'd like to know how to fix this problem.

Any advice offered is appreciated.

Thanks.
# 2  
Code:
$ cat copy.out
dir1/file1
dir1/file2
dir1/file3
dir1/white space
dir1/file4
$ while read file;do echo cp "$file" ./Newdir;done <copy.out
cp dir1/file1 ./Newdir
cp dir1/file2 ./Newdir
cp dir1/file3 ./Newdir
cp dir1/white space ./Newdir
cp dir1/file4 ./Newdir

# 3  
Code:
$ (IFS=$'\n"';cp -v $(<copy.out) dir2)
`dir1/file1' -> `dir2/file1'
`dir1/file2' -> `dir2/file2'
`dir1/file3' -> `dir2/file3'
`dir1/white space' -> `dir2/white space'
`dir1/file4' -> `dir2/file4'

# 4  

Remove the quotes from the name in copy.out, and change IFS to a newline:

Code:
IFS='
'
cp $( cat copy.out ) ./temp

Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Want to delete the junk files from a directory which are not listed in a TEXT file
Praveen Pandit
Hello Everyone, I want to delete the image files from a directory, which are not listed in a TEXT file. The directory contains large number of image files (in millions) required / not required. I want to delete the image files which are "not required". I have generated a Text file having...... Shell Programming and Scripting
3
Shell Programming and Scripting
Cat files listed in text file and redirect to new directory with same filename
trigger467
I have a directory that is restricted and I cannot just copy the files need, but I can cat them and redirect them to a new directory. The files all have the date listed in them. If I perform a long listing and grep for the date (150620) I can redirect that output to a text file. Now I need to...... Shell Programming and Scripting
5
Shell Programming and Scripting
Delete files listed in text file
kmanivan82
Hi Team, Here's the scenario, I have a text file called "file_list.txt". Its content is as follows. 111.tmp 112.tmp 113.tmp 114.tmp These files will present in "workdir" directory. It has many files. But only the files present in file_list.txt has to be deleted from the workdir...... Shell Programming and Scripting
7
Shell Programming and Scripting
Copy files listed in text file to new directory
IAmTheGrass
I am trying to write a script that will copy all file listed in a text file (100s of file names) to a new directory Assume script will run with main as current working directory and I know how many files/lines will be in List.txt Im trying to work up a test script using this model Contents of...... Shell Programming and Scripting
2
Shell Programming and Scripting
Shellscript to sort duplicate files listed in a text file
deaddevil
I have many pdf's scattered across 4 machines. There is 1 location where I have other Pdf's maintained. But the issues it the 4 machines may have duplicate pdf's among themselves, but I want just 1 copy of each so that they can be transfered to that 1 location. What I have thought is: 1) I have...... Shell Programming and Scripting
11
Shell Programming and Scripting