Zählt grep unterschiedlich ?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von flugopa, 18.08.2009.

  1. #1 flugopa, 18.08.2009
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    datei: test.xml
    Code:
    <111>1</111>
    <222>2</222>
    <333>3</333>
    <444>4</444>
    
    datei: xml.sh
    Code:
    #!/bin/sh
    START_COUNTER=`cat test.xml | grep '<' | wc -l`
    END_COUNTER=`cat test.xml | grep '</' | wc -l`
    
    echo $START_COUNTER
    echo $END_COUNTER
    
    Bei mir ist der START_COUNTER mit dem END_COUNTER identisch.
    Sollte nicht der START_COUNTER mehr anzeigen?

    Wer hat eine Idee?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 18.08.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Mahlzeit,

    das passt schon :)

    Grep gibt jeweils ganze Zeilen die du dann mit wc zählst
    und da du in jeder Zeile zumindest ein '>' und '</' hast ist das Ergebnis gleich.

    mfg
    HeadCrash
     
  4. #3 saeckereier, 18.08.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Du zählst einmal die *Zeilen* in denen < vorkommt und einmal die *Zeilen* in denen </ vorkommt. Vergleiche das bitte mit der Datei und du wirst so wie ich auch auf 4 kommen, oder?

    EDIT: Verdammt, zu spät
     
  5. #4 flugopa, 18.08.2009
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Hallo ALL,

    müßte nicht der Wert von START_COUNTER = 8 ergeben?
     
  6. #5 HeadCrash, 18.08.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Nein, da du die ausgegebenen Zeilen zählst.
     
  7. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    wieso? Du zählst alle Zeilen, in denen < vorkommt - das sind in der Datei 4 Stück.
     
  8. #7 flugopa, 18.08.2009
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Danke für den Hinweis.
    Wie kann ich den Inhalt einer Zeile auf einzelne Zeichen prüfen?

    Hintergrund: ich möchte Wissen ob eine XML dem Standart entspricht.
    z.B.:
    <xxx>x</xxx> = OK
    <xxx>xxxx> = NOT OK
     
  9. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    (1) Es heißt "Standard".
    (2) XML per Shell mit Grep und Konsorten zu überprüfen - lass es. Dazu ist das Format zu flexibel... Nimm lieber sowas wie http://xmlstar.sourceforge.net/
     
  10. #9 saeckereier, 18.08.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Jeder XML-Validierer kann das. Dafür gibt es spezielle Software. Idealerweise hast du dann auch eine sogenannte xsd, die festlegt, welche Felder in der XML-Datei existieren dürfen. Das kann der Validierer dann nämlich auch überprüfen.
     
  11. #10 slackfan, 18.08.2009
    Zuletzt bearbeitet: 18.08.2009
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Bei diesem xml rollen sich mir ja die Fußnägel hoch. Es darf nur ein Wurzelelement geben!

    Xmlstar geht zwar, aber ein Stylesheet und xsltproc ist wohl die bessere Wahl, weil auf fast jedem System verfügbar, um zu zählen.
     
  12. #11 flugopa, 19.08.2009
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Danke für den Link, das Tool ist gut.
     
  13. Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    hallo,

    also ich würde, wenn man selber parsen will, eher sowas wie Perl nehmen. Zwar gibt es auch in Perl extra Module, ich habe aber selber schon erlebt, daß man beispielsweise aus Dateien nur ganz bestimmte Informationen braucht (also den Wert eines Feldes oder die Anzahl bestimmter Felder eines Typs...) und da war das Gerödel mit den vorgefertigten XML- und SOAP-Modulen so ein Hühnerkram, daß ich mir die Datenbank-Antworten kurzerhand per HTTP/GET mit eigenem kurzen XML geholt und dann die Antwort mit Perl einfach in Arrays (dort "Listen") zerlegt habe. Mit denen und ihren Elementen kannst du anschließend machen was du willst.

    Nur mal als Beispiel, daß es manchmal schon Sinn haben kann, selber aus XML was raus zu fummeln, wenn die Suchkriterien genügend einfach sind und die Struktur immer gleich. Nur ist bash dafür evtl. nicht die erste Wahl.
     
  14. #13 saeckereier, 19.08.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Naja, aber in einer ordentlichen Anwendung sollte die XML korrekt geparst und validiert werden. Da jedes Mal das Rad neuzuerfinden ist nicht das wahre.

    Genau diese Beschreibung der Form des Inhalts per xsd und die einfache automatische Prüfung gegen Fehler in der Struktur sind die großen Vorteile. Wenn du einfach nur bestimmte Informationen übertragen willst und das alles nicht brauchst, dann würde ich auch keine XML nehmen.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 slackfan, 19.08.2009
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Sollte es für diesen Zweck nicht auch eine DTD tun? Ist wohl einfacher, wenn man jetzt nicht hoch komplexe Xml-Strukturen hat, wonach es hier ja aussieht.

    @saeckereier: Darf ich fragen, welches Tool du für die Schema-Validierung einsetzt und welchen Schema-Dialekt (WXS, Relax-NG oder Schematron) du nutzt und warum?

    cu
     
  17. #15 saeckereier, 19.08.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Sorry, eine DTD ist natürlich genauso gut. Es war eben eher so gemeint, dass man im Prinzip eine Definition der Datenstruktur haben sollte. Sonst braucht man auch keine XML.. Meiner Meinung nach nehmen viele Leute heute XML sobald sie irgendwas computerlesbares brauchen obwohl es da meistens mindestes genauso praktisch wäre eine DSL (Domain-Specific-Language) für zu nehmen.

    Zu deiner Frage: Im betrieblichen Umfeld zur ERP-Anbindung verwenden wir sowas. (ach ja: Tool ist der SAP-Businessconnector. Was meinst du mit Dialekten? Das sind ganz normale xsds nach W3C so wie ich das sehe..)
     
Thema:

Zählt grep unterschiedlich ?

Die Seite wird geladen...

Zählt grep unterschiedlich ? - Ähnliche Themen

  1. Inkscape will bezahlte Entwicklung zulassen

    Inkscape will bezahlte Entwicklung zulassen: Die Macher des freien Vektorgrafikprogramms Inkscape haben sich offenbar entschieden, künftig auch bezahlte Entwicklung zuzulassen. Konkret soll...
  2. Samsung zahlte 2013 eine Milliarde US-Dollar Lizenzgebühren an Microsoft

    Samsung zahlte 2013 eine Milliarde US-Dollar Lizenzgebühren an Microsoft: Ein kürzlich aufgetauchtes Gerichtsdokument belegt, dass im Rahmen von Patentverträgen Samsung im vergangenen Jahr mehr als eine Milliarde...
  3. Google zahlt Prämien für Verbesserungen der Sicherheit freier Software

    Google zahlt Prämien für Verbesserungen der Sicherheit freier Software: Google hat sein Prämienprogramm für gemeldete Fehler in Chromium und Blink erweitert und prämiert nun auch Verbesserungen der Sicherheit in...
  4. OpenSource - nun ist Zahltag !

    OpenSource - nun ist Zahltag !: Na was tragt Ihr denn bei ? ;) http://www.unixboard.de/comments.php?catid=3&id=798
  5. Sozialamt zahlt für Deutschland-Allergie

    Sozialamt zahlt für Deutschland-Allergie: ohne Worte - lest selbst ! http://www.spiegel.de/politik/deutschland/0,1518,261341,00.html