There are multiple directories which contain a file with the same name:
direct_afaap/file.txt direct_fgrdw/file.txt direct_sardf/file.txt ...
N
while read -r line; do suffix=$(sed 's/^.*_\(.*\)\/.*$/\1/' <<<$line) newfile=$(sed 's/\.txt/$suffix\.txt/' <<<$line) cp "$line" "~/direct_new/$newfile" done
where file_list is a list of your files.