使用 sed 在行尾添加字符会添加一个新行

使用 sed 在行尾添加字符会添加一个新行

我正在编写一个脚本,将一些 Magic 牌组列表从一种格式转换为另一种格式。我需要在每张牌所在行的末尾插入其设置代码。我的代码是:

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

问题是\r每行末尾都有一个我不知道的字符。这会使光标返回到行首。我通过尝试回显"$cardname""|""$set_code"哪个输出注意到了这一点

|M13idic Slime

相关内容