O problema era um caractere \r
no final de cada linha que eu não conhecia. Isso faz com que o cursor retorne ao início da linha. Eu notei isso tentando ecoar "$cardname""|""$set_code"
qual saída
|M13idic Slime
Estou fazendo um script para converter algumas listas de deck de Magic de um formato para outro. Eu preciso inserir o código do conjunto para cada cartão no final da linha em que está. Meu código é:
sed -i "$line_number""s/$/""|""$set_code"/ "$deck_file"
Onde $line_number
é uma linha no arquivo, $set_code
é o texto a ser adicionado e $deck_file
é um arquivo que estou editando, todos já definidos no código.
O que eu quero que essa linha faça é:
1 Acidic Slime
e transforme-o em
1 Acidic Slime|M13
Mas, em vez disso, adiciona uma nova linha e gera
1 Acidic Slime
|M13
No arquivo. Qualquer ajuda é apreciada, tenho certeza de que estou perdendo algo em sed
. Estou aberto a usar o awk ou qualquer outro comando, não precisa ser sed
.
O problema era um caractere \r
no final de cada linha que eu não conhecia. Isso faz com que o cursor retorne ao início da linha. Eu notei isso tentando ecoar "$cardname""|""$set_code"
qual saída
|M13idic Slime