Angenommen, ich habe die folgende Datei:Lesen gesamte Datei Variable, intakte Zeichen entkam keeping
hello\nworld
Das heißt, \n
die Zeichenfolge ist buchstäblich in der Datei:
$ cat input.txt
hello\nworld
Ich möchte lese diese Datei genau so wie sie ist in eine Variable in der Shell. Doch alle gemeinsamen Ansätze für die Daten aus einer Datei zu lesen, wie jene, die beschrieben here, die Shell die \n
Sequenz als Newline machen interpretieren:
% test="$(<input.txt)"
% echo "$test"
hello
world
% test="$(cat input.txt)"
% echo "$test"
hello
world
Dies ist für mich völlig unerwartet war, und ehrlich gesagt ich bin verwirrt, dass Ich kann keine Antwort auf dieses Problem im Internet finden; Ich habe erwartet, dass jemand schon über dieses Problem gestolpert ist.
Ich sah auch, dass, wenn Sie read -r
beim Lesen einer Datei Zeile für Zeile verwenden, es funktioniert, aber ich möchte es nicht Zeile für Zeile lesen, ich möchte die gesamte Datei lesen. Konkret möchte ich die test
Variable hier die Zeichenfolge "Hallo \ nWorld" buchstäblich enthalten. Wie mache ich es?
Ist Ihr 'echo' vielleicht auf' echo -e' umbenannt? – gudok
@gudok nein, ist es nicht. –
Was sagen "type echo" und "which echo"? – Leon