Linux im Bash mit Sed Zeilen Vervollständigen
Moin zusammen,
ich sitze hier und singe …
Spaß bei Seite bin echt am verzweifeln.
Ich habe eine Kette gebastelt, mit der ich einige Prozesse dokumentieren möchte.
Diese schaut so aus:
Und die Zeile mit dem SED bekomme ich einfach nicht eingebunden.
So einzeln funktioniert es, jedoch nicht im gewünschtem Befehl.
Und was mir auch noch aufgefallen ist, die Variable wird nicht abgerufen und wird genau so in die Datei geschrieben. …
Hilfe wer kann
Viele Grüße
Ich
ich sitze hier und singe …
Spaß bei Seite bin echt am verzweifeln.
Ich habe eine Kette gebastelt, mit der ich einige Prozesse dokumentieren möchte.
Diese schaut so aus:
export DISPLAY=:0 && konsole --new-tab -e "/bin/bash -x -c 'ZEIT=\$(date +%s) && \
echo -e \"\$ZEIT\t$(date '+%Y-%m-%d %H:%M')\t$TESTVARIABLE\" | tee -a test.log && \
sleep 10 && \
sek=\$(echo \$(date +%s)-$ZEIT | bc) && \
LZEIT=\$(date --date=\"@\$sek\" +%H:%M) && \
echo 1: \$sek 2: \$ZEIT 3: \$LZEIT && \
sed \\'/^\$ZEIT/s\!\$! 1\t$LZEIT\!\\' test.log && \
sleep 10 && \
read -rsp $\"Druecken...\n\" -n1 key'"
Und die Zeile mit dem SED bekomme ich einfach nicht eingebunden.
So einzeln funktioniert es, jedoch nicht im gewünschtem Befehl.
sed '/^1633371441/s!$! 1\t$LZEIT!' test.log
Und was mir auch noch aufgefallen ist, die Variable wird nicht abgerufen und wird genau so in die Datei geschrieben. …
Hilfe wer kann
Viele Grüße
Ich
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1344265863
Url: https://administrator.de/contentid/1344265863
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
13 Kommentare
Neuester Kommentar
Bash Variablen werden innerhalb von Hochkommas (') nicht aufgelöst, das werden sie nur innerhalb von normalen Anführungszeichen ("), und dort darf man das Dollarzeichen der Variablen natürlich nicht escapen, sonst wird sie erneut nicht aufgelöst.
Nee das ist natürlich Blödsinn, du musst nur die anderen special chars die innerhalb von normalen Anführungszeichen anders interpretiert werden wie das allein stehende Dollarzeichen etc. via Backslash escapen dann hat auch sed keine Probleme mit Anführungszeichen 😉.
RTFM, dann verstehst du auch wieso und warum und musst nicht nur copy n pasten
https://www.oreilly.com/library/view/learning-the-bash/1565923472/ch01s0 ...
RTFM, dann verstehst du auch wieso und warum und musst nicht nur copy n pasten
https://www.oreilly.com/library/view/learning-the-bash/1565923472/ch01s0 ...
Naja, wieder wie so oft Leichtsinns Fehler und überflüssiges escaping 😉
https://tio.run/##S0oszvj/PzU5I1/B0MzY2Njc0MTE0CknMSmnNEnBriS1uEQvJz@dyy ...
Schon erstaunlich wie viel Zeit manch einer mit so was banalem verpulvert, anstatt sich die Zeit zu nehmen und den Link oben genauer zu lesen 🤪.
Genug Zeit hättest du ja bis heute eigentlich gehabt ...
Gruß ER 🙈
https://tio.run/##S0oszvj/PzU5I1/B0MzY2Njc0MTE0CknMSmnNEnBriS1uEQvJz@dyy ...
Schon erstaunlich wie viel Zeit manch einer mit so was banalem verpulvert, anstatt sich die Zeit zu nehmen und den Link oben genauer zu lesen 🤪.
Genug Zeit hättest du ja bis heute eigentlich gehabt ...
Gruß ER 🙈
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:
Und jetzt kurz zur Verinnerlichung. Das ! wurde in meinem oberem Beispiel als Separator verwendet welche du mit einem Slash ausgetauscht hast.?
Das spielt keine Rolle , das ist reine Geschmackssache und kannst du einfach wieder durch Ausrufezeichen austauschen.Und jetzt kurz zur Verinnerlichung. Das ! wurde in meinem oberem Beispiel als Separator verwendet welche du mit einem Slash ausgetauscht hast.?
https://tio.run/##S0oszvj/PzU5I1/B0MzY2Njc0MTE0CknMSmnNEnBriS1uEQvJz@dyy ...
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:
Lustig… Ich habe mal ein Bild gemacht, sonnst glaubst du es mir ja nicht. :p
Lustig… Ich habe mal ein Bild gemacht, sonnst glaubst du es mir ja nicht. :p
Ist doch normal, der Bash Interpreter ist ja auch in den Belangen der Ausrufezeichen ja etwas anderes als sh weil in der Bash das Ausrufezeichen für die History-Expansion genutzt wird! Da ist nix lustig that's by design, und auch ein Grund warum ich oben Slashes statt Ausrufezeichen verwendet habe Hausaufgabe fürs Wochenende .
Tipp: Führ mal ein set +H vor der sed Zeile in der Bash aus.
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#History ...
Und schon lüppt das auch in der Bash mit den Ausrufezeichen als Delimiter ohne Anpassung.