Outra maneira de supor que nenhum espaço em branco está presente no nome dos arquivos:
$ xargs -n2 echo mv -i <<<"$(sed '1d; s/$/.tar.gz/' names.txt)"
mv -i TDF.tar.gz Sample1.tar.gz
mv -i DFG.tar.gz Sample2.tar.gz
mv -i GHY.tar.gz Sample3.tar.gz
Em sed '1d; s/$/.tar.gz/' , o 1d está excluindo a primeira linha do arquivo de entradaName names.txt , em seguida, o s/$/.tar.gz/ adiciona .tar.gz no final de cada linha (o $ ponits até o final da linha ).
Em xargs -n2 , estamos lendo dois conjuntos de strings separados por Espaço / ou Tab.
Notas:
-
Com base na saída de
cat -e names.txtde seu arquivo não é o formato de fim de linha do tipo Unix, para convertê-lo para o tipo Unix dodos2unix fileName, aplique o comando acima para renomear. -
remova
echopara execução a seco.
link para O que é ^M e como me livrar dele?