create zip based on contents of a file list

Solution 1:

On Linux you can use the -@ option:

-@ file lists. If a file list is specified as -@ [Not on MacOS], zip takes the list of input files from standard input instead of from the command line. For example,

          zip -@ foo

will store the files listed one per line on stdin in foo.zip.

So in your case you should be able to do:

cat diff-files.txt | zip -@ diffedfiles.zip

Solution 2:

Got it:

zip diffedfiles.zip $(cat diff-files.txt) -r