UNIX/AWK Tricks: How to copy a long list of files into a directory
- 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).