Используя sed для добавления символов в конце строки добавляет новую строку

Я делаю сценарий для преобразования некоторого Волшебства decklists от одного формата до другого. Я должен ввести код набора для каждой карты в конце строки, это идет. Мой код:

sed -i "$line_number""s/$/""|""$set_code"/ "$deck_file"

Где $line_number строка в файле, $set_code текст должен быть добавлен и $deck_file файл, который я редактирую, все уже определенные в коде.

То, что я хочу, чтобы та строка сделала, является взятием:

1 Acidic Slime

и поверните его в

1 Acidic Slime|M13

Но вместо этого это добавляет новую строку и выводы

1 Acidic Slime
|M13

В файле. Любая справка ценится, я уверен, что просто пропускаю что-то в sed. Я открыт для использования awk или любой другой команды, это не должно быть sed.

1
задан 30 March 2018 в 21:51

1 ответ

Проблемой был a \r символ в конце каждой строки, о которой я не знал. Это заставляет курсор возвратиться к началу строки. Я заметил это путем попытки отозваться эхом "$cardname""|""$set_code" какой вывод

|M13idic Slime
2
ответ дан 7 December 2019 в 13:25

Другие вопросы по тегам:

Похожие вопросы: