Se o arquivo vier de um sistema Windows, ele poderá ter um retorno de carro no final.
Você pode corrigir isso atribuindo à variável CODE
assim:
CODE="$( head -n 1 "$file" | tr -d '\r' )"
Eu preciso renomear os arquivos para incluir uma string encontrada na primeira linha.
ex:
[acoder@test]# head -1 FILE001.DAT
XYZ123
Aqui está o meu melhor palpite:
for file in /some/dir/*.DAT
do
CODE='head -1 "$file"'
echo "${file%.DAT}.$CODE.DAT"
done
saída:
.DATa/some/dir/FILE001.XYZ123
esperando ver:
/some/dir/FILE001.XYZ123.DAT
O que está errado?