Ein Wort aus einer Zeile suchen und rausschneiden...

simplex

simplex

[Versuchstier]
Hallo, folgende Zeile ist gegeben:

30584 pts/1 00:00:00 mysqld

Es soll aus der Zeile bzw. aus den Zeilen das wort mysqld gesucht werden und in eine Datei übergeben werden...

Ergebnis:

datei xyz hat folgenden inhalt: mysqld
ich brauche dies um zu überprüfen ob ein prozess läuft...(mysql) - damit ich dann eine if abfrage starten kann ob mysqld läuft oder nicht..

danke schon mal
micha
 
Code:
perl -n -e '/(\w*)$/?print "datei $ARGV hat folgenden inhalt: $1":1' quelldatei > auswertungsdatei
 
Zuletzt bearbeitet:
danke schon mal..

eventuell falsch ausgedrückt...es soll dann einfach nur eine datei mit dem inhalt des gesuchten wortes "mysqld" angelegt werden...wenn es dieses wort nicht gibt...soll die datei leer sein..


überprüfungsdatei - inahalt: 30584 pts/1 00:00:00 mysqld
auswertungsdatei - inhalt : mysqld (oder nichts)

perl...ich dachte es geht mit einem einfach shell befehl..aber ist ja kein problem den perl befehl in ein shell skript reinzuhauen oder?
 
Code:
perl -n -e '/mysqld$/?print mysqld:1' quelldatei > auswertungsdatei
Ich habs mit Perl gemacht, weil es (für mich) einfacher ist.
 
Hallo
Ich vermute mal, dass du nur feststellen willst ob mysqld läuft.
Könnte es sein, dass du vorher eine Datei mit der Ausgabe von ps angelegt hast?

Vorschlag:
Direkt aus ps:
ps -A |grep -o "[m]ysqld" >outputdatei
oder wenn du es aus der Datei willst
grep -o "mysqld" Inputfile >Outputfile

Wenn du nur das erste Vorkommen haben willst, häng noch ein |head -n1| dazwischen.

Gruß Wolfgang
Achso grep (GNU grep) 2.5.1
 
hey wolfgang :)

genau das ist es was ich gesucht habe :) vielen lieben dank!! :)

:D

edit: wo müsste ich denn das |head -n1| zwischenhängen?

ps -A | head -n1| grep -o "[m]ysqld" > test

so funktioniert es nicht

edit2:
ps -A | grep -o "[m]ysqld" | head -n1
okeh, so gehts ;)
 
Zuletzt bearbeitet:
Hallo

ps -A |grep -o "[m]ysqld" |head -n1 >outputdatei

man head

Gruß Wolfgang
 
okeh bis dahin alles klar...

aber wie kann ich denn die ausgabe einer variablen zuweisen?

für mich wäre ja folgendes logisch

ps -A |grep -o "[m]ysqld" |head -n1 > $test

aber dem ist ja nicht so... und $test=ps -A |grep -o "[m]ysqld" |head -n1; sowie test=ps -A |grep -o "[m]ysqld" |head -n1 klappt auch nicht...
 
Hallo

Also dir scheinen ja alle Grundlagen zu fehlen.
Schau bitte mal die man bash an!
Es gibt auch sehr gute Links im Netz, die an Beispielen die bash erklären.
www.linuxfibel.de
ist einer davon.
VAR=WERT;
wenn du die Ausgabe eines Befehls brauchst, dann schreib es entweder in
VAR=`command`
oder besser VAR=$(COMMAND);
in deinem all also
VAR=$(ps...);

Gruß Wolfgang
 

Ähnliche Themen

sed Wort suchen und Zeile komplett löschen

Mysql connect Problem

Ausgabe in *.txt Datei & Struct

Script für Netzaufbau (Bluetooth) - brauche Tips/Infos/Hilfe

Wo ist der Denkfehler - IF-Abfragen

Zurück
Oben