ralus67
Goto Top

Cat in Ausgabedatei in einer Shell ausgeführt

Hallo Community

Ich möchte eine bestimmte Datei, welche imt /tmp Verzeichnis ist mit Cat aufrufen und anschliessend aus dieser Datei eine neue erstellen. Leider funktioniert der cat Befehl in meiner Shell nicht. Was ist an untenstehenden Zeile falsch?

Ausgangslage: Im /tmp befindet sich eine datei tmp_host01.txt

Skript: Die Shell beinheltet folgende Zeile
cat /tmp/tmp_$(hostname).txt | grep "Alias name: osp" --after=8 | grep -e "Alias name: osp" -e until | sed "s/until:/\nuntil:/g" | grep -e "Alias name: osp" -e until | cut -c8- >/tmp/zert_ablauf_$(hostname).prom

Leider wird mir die zert_ablauf_host01.prom Datei nicht erstellt.

Habe es auch mit dieser Version versucht, jedoch erfolglos.
`cat /tmp/tmp_$(hostname).txt | grep "Alias name: osp" --after=8 | grep -e "Alias name: osp" -e until | sed "s/until:/\nuntil:/g" | grep -e "Alias name: osp" -e until | cut -c8- >/tmp/zert_ablauf_$(hostname).prom`

Kann mir jemand helfen die Lösung zu finden?

Content-ID: 2040248664

Url: https://administrator.de/contentid/2040248664

Ausgedruckt am: 19.11.2024 um 06:11 Uhr

SlainteMhath
SlainteMhath 02.03.2022 um 07:54:35 Uhr
Goto Top
Moin,

- Die Filter sind so korrekt? ggfs. mal einzeln ausführen
- Fehlermeldung?
- Rechte passen?

lg,
Slainte
Ralus67
Ralus67 02.03.2022 um 08:02:55 Uhr
Goto Top
Hallo SlainteMhath. Die Filter sind korrekt.

Führe ich den "cat" Befehl mit den entsprechenden greps auf der commando Zeile aus, dann funktionierts
cat /tmp/tmp_$(hostname).txt | grep "Alias name: osp" --after=8 | grep -e "Alias name: osp" -e until | sed "s/until:/\nuntil:/g" | grep -e "Alias name: osp" -e until | cut -c8- >/tmp/zert_ablauf_$(hostname).prom

Ich vermute dass die shell mit dem Cat Befehl und die Filtrierungen nicht zurecht kommt. Wie könnte man diese setzen, damit es funktioniert?
SlainteMhath
SlainteMhath 02.03.2022 um 08:10:32 Uhr
Goto Top
Schade das du 2 meiner 3 Fragen einfach ignorierst face-sad

die shell
was meinst du damit?! Der Prompt ist die shell.
Ralus67
Ralus67 02.03.2022 um 08:38:54 Uhr
Goto Top
Ich meinte. Im der Terminal Session funktioniert es. Packe ich diesen Befehl in ein shell Skript ein "datei.sh", dann funktioniert der Befehl nicht mehr
SlainteMhath
SlainteMhath 02.03.2022 um 10:50:58 Uhr
Goto Top
Schade das du 2 meiner 3 Fragen einfach ignorierst
Ralus67
Ralus67 02.03.2022 um 10:59:23 Uhr
Goto Top
Entschuldige dsa Versäumnis...

Rechte passen, bin als Root angemeldet
Und Fehler kriege ich keine
SlainteMhath
SlainteMhath 02.03.2022 um 11:20:27 Uhr
Goto Top
Was für eine shell verwendet du in der .sh? Die selbe wir am Prompt?
Evtl. ist es auch ein Fehler beim copy&paste der Zeile?

Zum debugging könnest du auf die Pites verzichten und statt dessen die teilwegebnisse in Zwischendateien speichern und die dann aufs neue per cat auslesen.
Ralus67
Ralus67 02.03.2022 um 11:40:10 Uhr
Goto Top
In meinem sh Script verwende ich
#!/bin/sh
SlainteMhath
SlainteMhath 02.03.2022 um 11:49:05 Uhr
Goto Top
Die selbe wie am Prompt?
Ralus67
Ralus67 02.03.2022 um 11:52:54 Uhr
Goto Top
Wie überprüfe ich das?
1915348599
1915348599 02.03.2022 aktualisiert um 15:28:56 Uhr
Goto Top
Poste doch einfach mal den Inhalt der Textdatei (in Codetags, siehe </> in der Symbolleiste) und das was du am Ende als Ergebnis haben willst, dann posten wir dir hier eine funktionierende Code-Zeile.
it-fraggle
it-fraggle 02.03.2022 um 22:49:43 Uhr
Goto Top
Bevor du etwas in ein Script packst und dieses startest, hast du deine Zeile mal so in der Shell ausprobiert? Funktioniert sie überhaupt korrekt? Zerleg mal deine Zeile und schau, ob nicht schon am Anfang irgendwas ist, was dir Probleme bereitet und deshalb keine Ausgabe kommt.