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-Key: 2040248664

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

Printed on: May 10, 2024 at 13:05 o'clock

Member: SlainteMhath
SlainteMhath Mar 02, 2022 at 06:54:35 (UTC)
Goto Top
Moin,

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

lg,
Slainte
Member: Ralus67
Ralus67 Mar 02, 2022 at 07:02:55 (UTC)
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?
Member: SlainteMhath
SlainteMhath Mar 02, 2022 at 07:10:32 (UTC)
Goto Top
Schade das du 2 meiner 3 Fragen einfach ignorierst face-sad

die shell
was meinst du damit?! Der Prompt ist die shell.
Member: Ralus67
Ralus67 Mar 02, 2022 at 07:38:54 (UTC)
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
Member: SlainteMhath
SlainteMhath Mar 02, 2022 at 09:50:58 (UTC)
Goto Top
Schade das du 2 meiner 3 Fragen einfach ignorierst
Member: Ralus67
Ralus67 Mar 02, 2022 at 09:59:23 (UTC)
Goto Top
Entschuldige dsa Versäumnis...

Rechte passen, bin als Root angemeldet
Und Fehler kriege ich keine
Member: SlainteMhath
SlainteMhath Mar 02, 2022 at 10:20:27 (UTC)
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.
Member: Ralus67
Ralus67 Mar 02, 2022 at 10:40:10 (UTC)
Goto Top
In meinem sh Script verwende ich
#!/bin/sh
Member: SlainteMhath
SlainteMhath Mar 02, 2022 at 10:49:05 (UTC)
Goto Top
Die selbe wie am Prompt?
Member: Ralus67
Ralus67 Mar 02, 2022 at 10:52:54 (UTC)
Goto Top
Wie überprüfe ich das?
Mitglied: 1915348599
1915348599 Mar 02, 2022 updated at 14:28:56 (UTC)
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.
Member: it-fraggle
it-fraggle Mar 02, 2022 at 21:49:43 (UTC)
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.