Page 1 of 1
Mehrzeilige Variable in Einzeilige umwandeln
Posted: 2018-03-16 18:23
by basher
Hallo,
ich habe eine Variable nach dem Muster
Daraus soll eine Variable nach dem Muster
gemacht werden. Wenn ich das versuche kommt überhaupt kein Output ($x enthät den mehrzeiligen Inhalt)
Fraglich wäre hier ohnehin, ob ich die Leerzeichen bekomme.
Re: Mehrzeilige Variable in Einzeilige umwandeln
Posted: 2018-03-17 02:13
by Joe User
Befehle und Pipes als Values müssen in Backticks gepackt werden, damit sie in einer Subshell ausgeführt und die Ausgabe in der Variablen gespeichert werden kann.
`tr` benöttigt als input einen Stream, was in diesem Fall bedeutet, dass Du "$x" mittels echo zum Stream machen musst. Zudem mag `tr` einfache Hochkommata lieber als doppelte Hochkommata.
In Shellscripts sollten Values möglichst immer gequotet werden, das vermeidet oft Fehler.
Als Ergebnis sollte dann soetwas rauskommen:
Re: Mehrzeilige Variable in Einzeilige umwandeln
Posted: 2018-03-17 08:48
by basher
Gibt leider das gleiche aus wie vorher, wieder mit Zeilenumbruch.
Kann es sein, dass am Ende vielleicht gar kein richtiger Zeilenumbruch steht sondern noch mehr? Gibt es eine Möglichkeit sich das (symbolisch) anzeigen zu lassen?
Re: Mehrzeilige Variable in Einzeilige umwandeln
Posted: 2018-03-17 11:44
by Joe User
Wie beziehungsweise durch was wird denn die Variablenliste erzeugt?
Üblich sind "\r" (Apple/MAC), "\n" (UNIX) und "\r\n" (Windows/UNIX) als Zeilenenden.
Möglicherweise kommst Du mit `sed` statt `tr` schneller zum Ziel oder Du konvertierst die Zeilenenden zuerst mit `dos2unix`.
Wenn "$x" ein File ist, dann musst Du `echo` durch `cat` ersetzen.
Am Besten postest Du mal das ganze Script, dann lässt sich besser helfen.