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

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

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

2 ответа

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

|M13idic Slime
1
ответ дан 17 July 2018 в 17:46

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

|M13idic Slime
1
ответ дан 23 July 2018 в 18:37
  • 1
    Я подумал об этом и протестировал его. Я получил результат, который вы показываете для своего теста, поэтому я не думал, что это могло привести к появлению новой строки – Zanna 31 March 2018 в 15:20

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

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