Wie lese ich eine Datei als Variable in ein Shell-Skript ein?

Wie lese ich eine Datei als Variable in ein Shell-Skript ein?

Ich muss ein Shell-Skript schreiben, um eine Textdatei einzulesen und Operationen daran auszuführen, um alle unterschiedlichen Wörter in der Textdatei zu zählen.

Ich verfüge über alle erforderlichen Befehle, um diese Vorgänge auszuführen. Wie kann ich jedoch die Textdatei in das Shell-Skript eingeben, um sie dann über die Befehle zu verwenden?

Einer der von mir verwendeten Befehle ist dieser: Wie gehe ich vor, um die Datei text.txt als Variable zu haben, sodass ich die Variable einfach im Skript aufrufen kann?

tr '[A-Z]' '[a-z]' < text.txt

Antwort1

Sie können einfacheBefehlsersetzung:

variable=`cat text.txt`
echo $variable

Oder in Bash:

variable=$(cat text.txt)

Das gleiche mit:

variable=`tr '[A-Z]' '[a-z]' < text.txt`

Antwort2

Tools wie tr und wc können Dateien bearbeiten. Sie müssen nichthabenum Strings an ihren Standard-DIN zu übergeben. Um Ihre Frage zu beantworten:

wie kann ich vorgehen, um die Datei text.txt als Variable zu haben, sodass ich die Variable einfach im Skript aufrufen kann?

Die Syntax hierfür lautet:

input=text.txt # or other file name
tr '[A-Z]' '[a-z]' $input

Antwort3

Beispieldatei

foo
        bar
    foo bar
foobar f0o b@rred

Generiert über

echo -e 'foo\n\t\tbar\n    foo bar\nfoobar f0o b@arred' | tee -a /tmp/foo.bar

Dateikontinenz in Bash-Variable (Kurzschriftfür $(cat file))

v="$(</tmp/foo.bar)"

Variable als Eingabe (ohne nicht druckbare Zeichen) für einen anderen Befehl verwenden

sed 's#@#a#; s@0@o@' <<<"${v//[![[:print:]]]}" | tail -1

Die letzte Zeile sollte ausgegeben werden und @durch aund 0durch ersetzt werden.o

foobar foo barred

Auch einer meiner Wünsche, den ich mir ansehen möchte mkfifo… viel Glück beim Parsen von text.txt.

verwandte Informationen