Last Updated on
- Make your list of files, with complete paths, call it “imgList.txt”. Put every file on a new line.
- Write a small awk script with the following 1 line:
{ printf("cp %s images/\n", $0);}
- Save the script as “copyList.awk”
- Do the following command:
awk -f copyList.awk imgList.txt | sh
Brief explanation of the awk script:
- %s means you’re putting a string in that spot of your output,
- $0 is the string you’re putting there
- $0 is a match for each line in the file “imgList.txt”
- images/ is the directory to copy your files to (in this example relative to where the command will be run from – can be absolute, of course)
- \n stands for new line
brief explanation of the command:
- awk executes the awk code found in “copyList.awk” on the lines found in “imgList.txt” and pipes the output to the shell ( | sh).
You can use Long Path Tool, for such problems, it works good…….
Or you could just do everything with awk and use system().
{ system(“cp \”” $0 “\” images”) }
The \” are so that the $0 argument is getting surrounded by “” ‘s so that if there are any spaces in the path, then the copy will still work.