You could use a for loop to read in the filenames.
Code:
for file in $(cat filelist); do
sed '<sed-command>' "${file}" >"${file}".sed1
awk '<awk-command>' "${file}.sed1" >"${file.gwk1}"
...
done
If you are using awk, you may be able to have awk commands do the same thing as sed did. Also, since the input of one comes from the output of the other, you can use a pipe (as already suggested) which eliminates the need for an intermittant file.
Since the input files follow a strict pattern, "ATV_1234_a_wm.wag (original filename)". Using wildcards is easy and you don't need a list. However if the "-final.wag" is kept in the same directory, you might want to test for its existance.
Code:
for file in ATV_[[:digit:]][[:digit:]][[:digit:]][[:digit:]]_a_wm.wag; do
if [ -f "${file%.wag}-final.wag" ]; then continue; fi
... # processing instructions
done
Use with care. Untested.
In effect, using the filename patterns, you are creating a list of the files you need to process without needing to create a filelist in the first place. This is one less manual process, which hopefully will make your life easier and eliminate one potential source of error due to missing items or typos.
Lastly, I wanted to add something to watch for. If you do have a variable or array containing the number part of the files, be sure to use double quotes around the variable when using it. Otherwise, leading zero's will be dropped.