web-dev-qa-db-ja.com

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
j_solo

問題は、各行の最後にある\r文字で、私は知らなかった。これにより、カーソルが行の先頭に戻ります。 "$cardname""|""$set_code"をエコーし​​ようとすると、これに気づきました

|M13idic Slime
1
j_solo