Em um sistema GNU:
find dir -type f -name '*.txt' -exec awk '
FNR == 2 {printf "%sfind dir -type f -name '*.txt' -exec awk '
FNR == 2 {printf "%s%pre%", FILENAME; nextfile}' {} + |
xargs -r0 mv -t newdir
", FILENAME; nextfile}' {} + |
xargs -r0 mv -t newdir
(note que pode fazer com que os arquivos com o mesmo nome se sobreponham. Uma única invocação do GNU mv
irá protegê-lo, mas se xargs
invocar vários, isso pode se tornar um problema).