2016-07-01 5 views
0

Ich habe eine Protokolldatei mit den folgenden DatenWie überprüft man, ob die eingegebenen Daten in einer Protokolldatei in Unix vorhanden sind?

Apr 10 16 02:07:20 Data 1 
Apr 11 16 02:07:20 Data 1 
May 10 16 04:11:09 Data 2 
May 12 16 04:11:09 Data 2 

Ich muß überprüfen, ob die eingegebenen Daten in meinem file.and vorhanden sind, wenn nicht, sollte es zeigen error.I den folgenden Code verwenden.

if [ ! -d "$StartTime" ] 
then 
{ 
echo " $StartTime does not exists in the file" 
exit 
} 
fi 

wo "$StartTime" speichert Apr 10 16 02:07:20 Datum. Wo soll ich den Logfilename angeben?

Antwort

2

können Sie es schreiben, wie unten:

StartTime="02:08:20" 
if [ `grep -c "$StartTime" *` -eq 0 ] 
    then echo " $StartTime does not exist in the files" 
fi 
  • grep für den Suchbegriff übereinstimmen und -c für die Anzahl der Matches
  • if abgestimmt Linien -eq aka zählen gleich 0 ist, Druck nicht abgestimmt
+0

ich schon '10. April 16 02 Uhr zu speichern. 20' in' $ StartTime' Darf ich wissen, warum wir mit ' * | wc -l '-eq 0'? Wird es in GIT Bash funktionieren? – Vishwaroopa

+0

@ Vishwaroopa, nicht sicher über die GIT Bash, können Sie versuchen, wenn die Befehle verfügbar sind. Meistens sind sie auf Aromen. Sie können StartTime als festlegen –

+0

Danke, wo kann ich meinen Log-Dateinamen angeben? Es muss überprüft werden, ob das Datum in '$ StartTime' ie)' Apr 10 16 02: 07: 20' in log1.log (Dateiname) steht – Vishwaroopa

1

Die Anzahl der Einträge muss nicht gezählt werden. grep fehl (dh Rückkehr Exit-Status 1, wenn der Suchst nicht gefunden wird: 07::

StartTime="02:07:20" 
if grep -q "${StartTime}" test.log;then 
    echo " $StartTime does not exist in the files" 
    exit 1 
fi 
+0

Danke für die Antwort – Vishwaroopa

Verwandte Themen