Linux Bash Script Text aus Datei kopieren?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Evtl. könnte das klappen, habe ich aber nicht ausprobiert

cat deinedatei | sed 's/.*[abschnitt1] \(.*\)[abschnitt2]/\1/'
Woher ich das weiß:Studium / Ausbildung – Studium in theoretischer Informatik (Master)

OK, habs mal in AWK implementiert, und es ist doch ein etwas längerer Einzeiler geworden.

Also hab ich es noch ein zweites mal mit den herkömmlichen Shellwerkzeugen implementiert. Ist zwar sogar noch unschöner, aber "etwas" kürzer.

Wenn deine INI-Datei so aussieht:

[foo]
abc
def
ghi

[bar]
lorem
ipsum
dolor

[qux]
23
42

... dann musst du nur diesen formschönen Einzeiler durchlaufen lassen:

eval `cat config.ini | tr ']\n' '= ' | sed -e 's_= _="_g' -e 's_  _";\n_g' -e 's_\[__g'`

echo "$bar"

Wegen der echo-Zeile wird die Variable "bar" ausgegeben, mit der Zeile "lorem ipsum dolor", also genau den drei Zeilen, die in der INI-Datei unter "[bar]" stehen.

Wie geesagt, mit AWK ist es zwar etwas "sauberer", aber auch etwas länger.

Wenn der obige Code nicht zu 100% das macht, was du willst, kannst du ihn ja noch anpassen.

Viel Spaß! :)

Woher ich das weiß:Berufserfahrung
C3tr4x 
Fragesteller
 28.04.2021, 22:30

Danke! Das ist ein super Ausgangspunkt und mit ein paar Anpassungen exakt was ich brauche

1

Möglich ist es bestimmt, am ehesten mit sed und awk. Diese Skripte sind dann aber recht kryptisch und mühsam. Da würde sich eine Lösung mit Python eher anbieten - das ist sowieso auf praktisch jedem Betriebssystem zu finden, wo eine bash läuft.