Shell Script Stringmanipulationen mit sed

Hallo,

ich habe folgenden Code:

echo "Hallo"
wert= grep "Infected files:" $logfile | sed 's/Infected files: //'
echo "Wert= $wert

Die Ausgabe ist:

Hallo
0
Wert = 

Die Ausgabe von sed wird also auf den Schirm geworfen, statt in die Variable wert geschrieben.
Ich brauche die Ausgabe von sed aber in der Variablen. Wie kann ich das machen?

Vielen Dank

Hallo 151kg,

ich habe folgenden Code:

nimm diesen Code:

wert=$(grep "Infected files:" $logfile | sed 's/Infected files://')

ohne daß ich jetzt die Sinnhaftigkeit deines Codes überprüft habe, die mir zweifelhaft erscheint. Warum brauchst grep, wenn Du das gleich mit sed haben kannst? Wahrscheinlich willst Du ja nur den Text „Infected files:“ aus dem $logfile löschen, oder?

Viele Grüße
Marvin

Danke, das war was ich brauchte :smile:

ohne daß ich jetzt die Sinnhaftigkeit deines Codes überprüft
habe, die mir zweifelhaft erscheint. Warum brauchst grep, wenn
Du das gleich mit sed haben kannst? Wahrscheinlich willst Du
ja nur den Text „Infected files:“ aus dem $logfile löschen,
oder?

Im Logfile gibt es je nach zustand eine Zeile mit dem Inhalt:

Infected files: 0

oder

Infected files: 1

oder sonsteine Zahl
Ich brauche für mein Script nur diese Zahl. daher habe ich mir zuerst die Zeile rausgesucht um anschließen alles ausser der Zahl zu löschen.
Vielleicht gibts ja einen eleganteren weg?

Wie kann ich ein Script anhalten
Hallo,

ich habe es geschafft, das Script per Button vom Desktop starten zu lassen.
Nur wie kann ich das Script am Ende solange anhalten, bis der User es quittiert?
Der Befehl pause wird ignoriert.

Hallo 151kg,

Nur wie kann ich das Script am Ende solange anhalten, bis der
User es quittiert?

Da musst Du schon etwas genauer erklären, was Du möchtest. Was soll den der User „quittieren“? Und was soll ein Skript machen, wenn es nicht „quittiert“ wird? Ist jedenfalls ziemlich ungewöhnlich.
So ganz allgemein gesprochen kannst Du ja sowas machen:

echo "Aufhören? (j/n)"
read ANSWER

mit einer while oder until-Schleife drumrum. Genaueres hängt von deinen Absichten ab.

Der Befehl pause wird ignoriert.

Was für ein Befehl „pause“? Meinst Du

read -p "Bitte eine Taste drücken"

Das hält das Skript solange an, bis der User eine Taste drückt.

Viele Grüße
Marvin

Hallo 151kg,

Im Logfile gibt es je nach zustand eine Zeile mit dem Inhalt:

Infected files: 0

oder

Infected files: 1

oder sonsteine Zahl
Ich brauche für mein Script nur diese Zahl

ZAHL=$(sed -n 's/Infected files: //p' $logfile)

liefert dir diese Zahl. Ist nur eine mögliche Lösung…

Viele Grüße
Marvin