it-swarm.com.de

Wenn Sie sed verwenden, um Zeichen am Ende einer Zeile hinzuzufügen, wird eine neue Zeile hinzugefügt

Ich erstelle ein Skript, um einige Magic-Decklisten von einem Format in ein anderes zu konvertieren. Ich muss den eingestellten Code für jede Karte am Ende der Zeile einfügen, auf der sie liegt. Mein Code ist:

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

Wobei $line_number eine Zeile in der Datei ist, $set_code ein hinzuzufügender Text ist und $deck_file eine Datei ist, die ich bearbeite, die alle bereits im Code definiert sind.

Ich möchte, dass diese Zeile Folgendes übernimmt:

1 Acidic Slime

und mach daraus

1 Acidic Slime|M13

Stattdessen werden eine neue Zeile und Ausgänge hinzugefügt

1 Acidic Slime
|M13

In der Datei. Jede Hilfe wird gebeten, ich bin mir sicher, dass ich nur etwas in sed vermisse. Ich bin offen für awk oder andere Befehle, es muss nicht sed sein.

1
j_solo

Das Problem war ein \r -Zeichen am Ende jeder Zeile, von der ich nichts wusste. Dadurch kehrt der Cursor zum Zeilenanfang zurück. Ich bemerkte dies, indem ich versuchte, "$cardname""|""$set_code" den Ausgang wiederzugeben

|M13idic Slime
1
j_solo