Je suis en train de faire un script pour convertir certaines listes de deck Magic d'un format à un autre. Je dois insérer le code correspondant à chaque carte à la fin de la ligne sur laquelle il est allumé. Mon code est:
sed -i "$line_number""s/$/""|""$set_code"/ "$deck_file"
Où $line_number
est une ligne du fichier, $set_code
est un texte à ajouter et $deck_file
est un fichier que je suis en train de modifier, tous déjà définis dans le code.
Ce que je veux que cette ligne à faire est de prendre:
1 Acidic Slime
et le transformer en
1 Acidic Slime|M13
Mais au lieu de cela, il ajoute une nouvelle ligne et des sorties
1 Acidic Slime
|M13
Dans le fichier. Toute aide est appréciée, je suis sûr que quelque chose manque dans sed
. Je suis ouvert à l'utilisation de awk ou de toute autre commande, il n'est pas nécessaire que ce soit sed
.
Le problème était un \r
à la fin de chaque ligne que je ne connaissais pas. Cela ramène le curseur au début de la ligne. J'ai remarqué cela en essayant de faire écho à "$cardname""|""$set_code"
quelle sortie
|M13idic Slime