Logfileanalyse-Skript

D

davinci80

Mitglied
:help: Hallo zusammen!

habe ein Problem im u. s. Skript...
Sobald ich es ausführe bekomme ich die Meldung:

grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
kein gzip

Ich möchte, dass das Skript erkennt sobald eine Datei mit dem Format .gz eingegeben wurde und dementsprechend handelt (siehe Skript)

Wer kann mir mit seinem Shell-KnowHow weiterhelfen?!? :hilfe2:

Danke!


echo "Bitte geben Sie den Dateinamen ein: "
read Dateiname
echo "Bitte geben Sie den Namen der Zieldatei ein: "
read Dateiname2

TYP="$(file date|grep -o gzip )"

if [ -z "$TYP" ]
then
echo "kein gzip"
typeset -i i=1
while (( i <= 8 ))
do
grep ${array} $Dateiname >> $Dateiname2.csv
i=i+1
done
grep $Dateiname |sed -ne '/4FBNAV000060/;/4FBTCP006520/p' >> $Dateiname2.csv
grep $Dateiname |sed -ne '/4FBCHK000611/;/4FBNAV000092/p' >> $Dateiname2.csv
else
echo "File ist $TYP"
typeset -i i=1
while (( i <= 8 ))
do
zgrep ${array} $Dateiname >> $Dateiname2.csv
i=i+1
done
zgrep $Dateiname |sed -ne '/4FBNAV000060/;/4FBTCP006520/p' >> $Dateiname2.csv
zgrep $Dateiname |sed -ne '/4FBCHK000611/;/4FBNAV000092/p' >> $Dateiname2.csv
fi

echo
echo "Die Logfileanalyse ist beendet. Das Ergebnis finden Sie in der Datei: $Dateiname2.csv"
echo "-------------------------------------------------------------------------------"
echo
 
Welche grep Version?
Welches OS?
Welche Shell?

Warum muß man euch sowas immer aus der Nase ziehen?
 
Das scheint ein Geheimnis zu sein.
Die ganze Problematik findet sich ein paar Threads weiter unten:

http://www.unixboard.de/vb3/showpost.php?p=221609&postcount=18

Dazu hatte ich sogar noch etwas zur Option -o von grep gesagt.

Ganz simpel
Die Ausgabe von file für diverse Dateitypen ansehen.
Dann nach dem Gewünschten matchen.
Dann auswerten.

Thats all.

Gruß Wolfgang
 
Versionen...

gerne würde ich euch alle Systeminfos miteilen,
aber wie bekomme ich das über die schell heraus...!??!?
 
gerne würde ich euch alle Systeminfos miteilen,
aber wie bekomme ich das über die schell heraus...!??!?

Zum letzten mal, bevor ich mich ausklinke.
Um welches OS (Operating System) geht es?


Ist es Unix, oder Linux, oder SunOS...

Falls wir von Windows reden, frag besser woanders nach.

Gruß Wolfgang
 
Das es sich hierbei um UNIX handelt müsste doch klar sein!

Meine Frage bezog sich auf die Befehle, mit denen ich herausfinden kann welche Version es von UNIX ist!
 
Hi,

Code:
# uname -a
# cat /etc/issue
# grep -V
wären meines Wissens ein paar Informationsträger.

Des weiteren sollte Dein System - sofern es einigermaßen anfängerfreundlich ist - über Informationsseiten wie die sogenannten manpages verfügen. Wenn dem so ist, solltest Du bei einer Fehlerausgabe wie
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
immer sofort mit einem
Code:
man grep
antworten um nachzusehen, ob "Dein" grep (vermutlich nicht GNU, denn "meines" kann -o ;-P) das tatsächlich nicht kann.

Gruß Daniel
 
Äh,

also eigentlich solltest du wissen welches Betriebssystem du hast.

Es gibt kein "Unix" mehr, schon lange nicht mehr, dafür aber Dutzende von Derrivaten.

Kuck mal in /etc/, wenn du Glück hast findest du eine Datei namens release oder so ähnlich.
Bei mir auf openSuse heisst die z.B. SUSE-Release.

An dieses Schema halten sich aber nur einige Distros.
 
Hi,

Code:
# uname -a
# cat /etc/issue
# grep -V
wären meines Wissens ein paar Informationsträger.

Des weiteren sollte Dein System - sofern es einigermaßen anfängerfreundlich ist - über Informationsseiten wie die sogenannten manpages verfügen. Wenn dem so ist, solltest Du bei einer Fehlerausgabe wie

immer sofort mit einem
Code:
man grep
antworten um nachzusehen, ob "Dein" grep (vermutlich nicht GNU, denn "meines" kann -o ;-P) das tatsächlich nicht kann.

Gruß Daniel




Uppala,

sobald ich man grep eingebe,
sehe ich, dass das ein SunOS 5.8 System ist :D

äääähhmmmm, was heisst das jetzt für mich?!!?
wie kann ich jetzt mein Skript zum laufen bringen
Übrigens, grep -V geht auch nicht...
 
Hallo
@davinci80

Zuerstmal möchte ich sagen, dass es keinen Grund gibt diesen Beitrag mit einer Begründung "(HuHu)" zu melden.
Alles was hier kommt kommt freiwillig, einen Anspruch darauf gibt es nicht.

Zum Thema:
Welches OS verwendet wird, sollte aus meiner Sicht schon der User wissen bevor irgendetwas darauf erledigt wird. Erst Recht in der Shell.
Schließlich ist das ja entscheident, wie man mit der Kiste umgeht, welche Befehle sie versteht und welche nicht.

Welche Shell du verwendest solltest du auch wissen.
Eventuell hilft ja die Variable SHELL weiter.
echo $SHELL
Schließlich kannst du auch nachsehen, worauf deine Shebang (ertse Zeile eines ausführbaren Skriptes) zeigt.

Falls du dieses Grep verwendest:
http://osr507doc.sco.com/en/man/html.C/grep.C.html
Dann ersetze einfach das -o aus meinem Vorschlag durch -x.

IMHO sollte man gerade als Anfänger als erstes die entsprechenden Manpages finden.

Gruß Wolfgang
 
Uppala,

sobald ich man grep eingebe,
sehe ich, dass das ein SunOS 5.8 System ist :D

äääähhmmmm, was heisst das jetzt für mich?!!?
wie kann ich jetzt mein Skript zum laufen bringen
Übrigens, grep -V geht auch nicht...

Dann mußt Du für das, was Du mit
Code:
TYP="$(file date|grep -o gzip )"
bezweckst (was ich im übrigen nicht ganz nachvollziehen kann. Außer `file` oder `date` hat bei Dir eine andere Bedeutung als bei mir ?( ) eine Alternative finden.

Vergleiche auch man grep (GNU/linux) mit man grep (unix)

Gruß Daniel

Edit: ok, das date hatte mich zu sehr irritiert ;-P
 
Zuletzt bearbeitet:
Wahrscheinlich fehlt der letzte Buchstabe und es soll datei heißen.

Falls du deine Manpage nicht findest, dann versuch es mal hier:
http://docsun.cites.uiuc.edu/sun_docs/C/solaris_9/SUNWaman/hman1/ksh.1.html

Wenn ich meine Glaskugel drehe, sehe ich dass dort vermutlich die ksh Standard ist.

Insofern sehe ich beim groben Überfliegen schon einen Fehler.
Die Incrementierung von i=i+1 fliegt dir um die Ohren.

Hier ein Auszug aus der Manpage:
A simple example using arithmetic expansion:


# repeat a command 100 times
x=100
while [ $x -gt 0 ]
do
command
x=$(($x-1))
done

Die doppelte while -Schleife kannst du dir sparen, wenn du die if-Abfrage in die while-Schleife legst.

Gruß Wolfgang
 
Hallo
@davinci80

Zuerstmal möchte ich sagen, dass es keinen Grund gibt diesen Beitrag mit einer Begründung "(HuHu)" zu melden.
Alles was hier kommt kommt freiwillig, einen Anspruch darauf gibt es nicht.

Zum Thema:
Welches OS verwendet wird, sollte aus meiner Sicht schon der User wissen bevor irgendetwas darauf erledigt wird. Erst Recht in der Shell.
Schließlich ist das ja entscheident, wie man mit der Kiste umgeht, welche Befehle sie versteht und welche nicht.

Welche Shell du verwendest solltest du auch wissen.
Eventuell hilft ja die Variable SHELL weiter.
echo $SHELL
Schließlich kannst du auch nachsehen, worauf deine Shebang (ertse Zeile eines ausführbaren Skriptes) zeigt.

Falls du dieses Grep verwendest:
http://osr507doc.sco.com/en/man/html.C/grep.C.html
Dann ersetze einfach das -o aus meinem Vorschlag durch -x.

IMHO sollte man gerade als Anfänger als erstes die entsprechenden Manpages finden.

Gruß Wolfgang


Hallo Wolfgang,

Danke für Deine Ratschläge etc..
Bitte bedenke, dass wir hier über andere Dimensionen sprechen.
Ich möchte nicht unbedingt verraten an welchem System ich bastle,
aber es ist das größte IT- Projekt Europas, somit steht es bei uns an der Tagesordnung Teilsysteme neu kennen zu lernen. Kein Programmierer, Architekt oder Tester wird es irgendeinem Kollegen übel nehmen, wenn er das OS eines Teilsystems nicht weiß!
Ich hoffe ich konnte Dir es etwas verdeutlichen, warum das bei mir so schwierig ist. Wenn man ca. 15 Systeme qualifiziert und sie "auf von Haaren bis auf die Knochen kennt und auf die Beine stellen muss" und verschiedene Programme schreibt, zich Tools anwendet etc. etc. etc., dann ist es absolut verständlich, warum es bei mir etwas holprich zugeht... 8)

Danke.
 
Ich möchte nicht unbedingt verraten an welchem System ich bastle,
aber es ist das größte IT- Projekt Europas,

äh ja, und

somit steht es bei uns an der Tagesordnung Teilsysteme neu kennen zu lernen. Kein Programmierer, Architekt oder Tester wird es irgendeinem Kollegen übel nehmen, wenn er das OS eines Teilsystems nicht weiß!

Genau.
Moment, ich frag mal kurz meine Kollegen ob sie eigentlich wissen auf was sie entwicklen.

Wenn man ca. 15 Systeme qualifiziert

Interessant.

Und wie ist dann die Qualität der Systeme?

Also wir fassen mal zusammen:

- du arbeitest im grössten IT-Projekt Europas (ich könnte mich schon bei der Formulierung schon wegschmeißen)
- bist der Mega-Fachman
- weisst aber nicht mal auf welchem Betriebssystem du entwickelst (Ok, unnötige Details)
- und kannst anscheinend auch nicht programmieren

Ist schon lustig was manche Leute für ein Bild von sich selbst haben.......:devil:
 
Sag nix, du entwickelst die Elektronische Gesundheitskarte und arbeitest bei T-Systems ^^
 
Respektiert das doch einfach mal... *hust*

Tu ich doch!!!

Nachdem er dann so im Lauf der Monate und Jahre rausgefunden hat, auf welchen Betriebssystemen er die Killerapplikation schlechthin entwickelt, wird das bestimmt die Welt revolutionieren..........:devil:
 

Ähnliche Themen

Switche abfragen über Script

Skript soll nicht doppelt laufen... kill pkill pid cron

Shell Skript beschleunigen

ip6tables Problem

HandbrakeCLI Shell Skript

Zurück
Oben