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.txt
de 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
echo
para execução a seco.
link para O que é ^M
e como me livrar dele?