Antwort
 
Themen-Optionen Thema durchsuchen
Alt 14.12.2007, 10:38 Nach oben    #1
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard große Datei öffnen

Ich habe das Problem, dass ich via vi eine große Datei (2,2 GB) öffnen will, weil ich eine bestimmt Zeile suche, bzw. wissen muss, in welcher Zeile der Eintrag steht.

wenn ich aber
Code:
vi datei
ausführe, dann meint vi, dass es sich um eine neue Datei handeln würde...


Jemand eine Idee?


Also letztlich geht es mir darum, dass ich aus der Datei (logilfe) die letzten x Zeilen brauche, ich aber noch nicht weiß, wieviele genau das sind, andernfalls würde ich das mit tail machen, aber dafür muss ich erstmal wissen, in welcher Zeile der erste der gesuchten Einträge ist...
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 11:32 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.649
Standard

tail -fn [Anzahl der Zeilen] /path/to/log

das sollte dir helfen... n ist anzahl der letzten Zeilen und f ist einfach nur fortlaufend, sprich du bekommst die neusten Einträge gleich mit ausgegeben in "Echtzeit"
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 12:09 Nach oben    #3
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 867
Standard

Mit awk kannst du z.B. die Zielennummer rausbekommen:

Code:
awk '/suchmuster/ {f=NR;l=$0}END{print f l;}' datei.log
Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 13:58 Nach oben    #4
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
tail -fn [Anzahl der Zeilen] /path/to/log
ja - im Prinzip ist es das, was ich will - nur eben erst in dem Schritt danach!

Ich muss ja erst wissen, wieviele Zeilen ich haben will... da bin ich halt noch bei das raus zubkommen!


Zitat:
Zitat von Basti Beitrag anzeigen
Mit awk kannst du z.B. die Zielennummer rausbekommen:

Code:
awk '/suchmuster/ {f=NR;l=$0}END{print f l;}' datei.log
Basti
Sieht wunderbar aus - nur:
Code:
awk '/Nov/ {f=NR;l=$0}END{print f l;}' /srv/apache2/logs/datei.log
awk: cannot open /srv/apache2/logs/datei.log (File too large)
will awk wohl leider nicht....
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 14:02 Nach oben    #5
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.649
Standard

Code:
grep -rin -A 5 -B 2 "Lustiger Suchstring"
Quelle: http://www.sequenz.ch/archive/2005/0...-anzeigen.html
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 14:06 Nach oben    #6
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard

ich habe das jetzt so gelöst, dass ich einfach mit tail x Zeilen ausgegeben habe und diese dann in eine temp-Datei geschrieben habe.
Mittels head dann geschaut ob der Zeitraum dann schon passt....

Das erschien mir nun das einfachste.

Code:
tail -n 800000 datei.log > temp.log

head -n 1 temp.log
Das habe ich nun ein paar Mal gemacht um in etwa abzuschätzen, ob ich richtig liege.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 16:11 Nach oben    #7
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Was spricht denn dagegen grep einzusetzen um die Zeile zu finden?
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 16:14 Nach oben    #8
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.649
Standard

ich glaub nur die Zeit... er war schneller als ich
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2007, 18:45 Nach oben    #9
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard

Zitat:
Zitat von sparrow Beitrag anzeigen
Was spricht denn dagegen grep einzusetzen um die Zeile zu finden?
weil mir - so dachte ich - nicht wichtig genug war in welcher Zeile exakt das war, sondern mir war wichtig, dass ich auf jeden Fall alle Zeilen danach noch erwischte.

@Martin:
Zitat:
Zitat von WarrenFaith Beitrag anzeigen
ich glaub nur die Zeit... er war schneller als ich
Ich verstehe nicht, was du mir damit sagen wolltest.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.12.2007, 10:28 Nach oben    #10
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.649
Standard

Zitat:
Zitat von Jann Hendrik Beitrag anzeigen
@Martin:
Zitat:
Zitat von WarrenFaith Beitrag anzeigen
ich glaub nur die Zeit... er war schneller als ich
Ich verstehe nicht, was du mir damit sagen wolltest.
Ich hatte nur die Vermutung, dass du schon fertig warst mit deinen Versuchen, als ich noch die Lösung per grep gepostet hab. Deswegen meinte ich, dass ich halt zu spät gepostet hab, um dir noch eine "bequemere" Lösung zu ermöglichen.
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.05.2008, 11:27 Nach oben    #11
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard

Ich nutze diesen thread mal für ein Problem, dass dem oben genannten recht ähnlich ist.

Mit head oder tail kann man über die Option -n ja eine gewisse Menge an Zeilen ausgeben lassen. Jedoch ist dann zwangsweise immer der Anfang oder das Ende mit dabei.
Ich suche gerade nach einer Lösung, dass ich Zeile x bis Zeile y aus einer Datei ausgeben lassen kann.

Es muss nichts automatisiert werden, ich werde das mit der Hand machen, weil es was 'einmaliges' sein wird.

Jemand eine Idee?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.05.2008, 16:22 Nach oben    #12
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard

Mir kommt gerade die Idee das mittels head und tail zu lösen, indem das kombiniert wird.

Allerdings wäre das doch heftig überladen, wenn ich nur wenige Zeilen aus einer paar-GB-großen Datei heraus holen möchte.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.05.2008, 22:48 Nach oben    #13
Erfahrener Benutzer
 
Benutzerbild von Bleistift
 
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 313
Standard

Zitat:
Zitat von Jann Hendrik Beitrag anzeigen
Mir kommt gerade die Idee das mittels head und tail zu lösen, indem das kombiniert wird.
Ja, so würde ich es auch lösen...
Zeilen 99 und 100:
Code:
head -n100 /var/log/mail.log | tail -n2 /var/log/mail.log
Zeilen 490 bis 500:
Code:
head -n500 /var/log/mail.log | tail -n10 /var/log/mail.log
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination.
Bleistift ist gerade online  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.05.2008, 07:47 Nach oben    #14
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.466
Standard

Die Angabe der Datei bei tail kann entfallen, da die Daten für tail ja bereits über die pipe von head kommen.

Ich habe das aber auch genauso gelöst.
Nun bin ich noch dabei das in eine Funktion zu packen, damit ich nicht die Differenz sondern die absolute Zeilenangabe eingeben kann.


// edit:
noch steckt es in einer Shell-Datei, die Funktionalität muss daher auch über diese Datei aufgerufen werden...

Code:
#!/bin/sh
#=============================================================#
# Beschreibung: Ausgeben einer Datei von Zeile x bis Zeile y  #
# Author:       Jann Hendrik Bekaan                           #
# Datum:        02.05.2008                                    #
#=============================================================#

file=$1
start=$2
stop=$3

if [ $start -gt $stop ] ; then
  echo "start groesser als stop"
elif [ $start -eq $stop  ] ; then
  echo "start gleich stop"
else
  start=$(($2-1))
  diff=$(($stop-$start))

  head -n $stop $file | tail -n $diff
fi
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!

Geändert von Jann Hendrik (05.05.2008 um 10:59 Uhr)
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datei über FTP-Funktionen erstellen Jan PHP-Programmierung 1 08.03.2007 20:36
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
Textausgabe in Datei obiwankenobi Allgemeine Java-Programmierung 2 09.05.2005 12:51
Frage zum öffnen einer Datei koegl Allgemeine Java-Programmierung 2 04.04.2005 07:55
Java findet Datei nicht Niki_Tesla Allgemeine Java-Programmierung 14 14.12.2004 22:31


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45