Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

(Bash) mehrere htm-Dateien nach Muster durchsuchen - Ergebnis in Liste speichern

Frage Entwicklung Batch & Shell

Mitglied: curmudgeon

curmudgeon (Level 1) - Jetzt verbinden

21.07.2010 um 13:29 Uhr, 5927 Aufrufe, 5 Kommentare

Guten Tag Community! Ich würde mich sehr über ein wenig Hilfe bei meinem Problem freuen.

In einem Ordner befinden sich mehrere 100 .htm Dateien.

Diese enthalten ordnungsgemäß immer mal wieder den String:
"<li class="xyz"><a id="

Jetzt kommen da immer wieder einige hinzu/werden geändert und es kann passieren, dass sie sich so lesen:
"<li class="xyz">TEXT"

Ich bräuchte also ein Batch Skript (Windows XP/7), dass die .htm Dateien ausliest und nach dem Muster "<li class="xyz">" sucht und überprüft, ob es danach mit einem "<" weitergeht. Ist dies nicht der Fall, müsste der Dateiname in eine Liste, quasi eine Überprüfungsliste.

Leider bin ich in Batch absolut neu und würde mich sehr sehr freuen, falls mir hier jemand einen Code-Anstoß geben könnte.

Schonmal vielen Dank und viele Grüße
Mitglied: micneu
21.07.2010 um 13:43 Uhr
kann es auch mit tools aus der linux welt gehen?
grep -r "\<li class=\"xyz\"\>.*\<" *.htm

so oder ähnlich das sollte dir alles finden was diesen string hat und den datei namen und die zeile anzeigen.
Bitte warten ..
Mitglied: curmudgeon
21.07.2010 um 13:52 Uhr
Hallo micneu.

Leider muss ich auf alles aus dem Linux-Werkzeugkasten verzichten.

Trotzdem, danke dir sehr!
Bitte warten ..
Mitglied: LotPings
21.07.2010 um 15:08 Uhr
Dann versuche mal:
findstr /S /I "\<li.class=\"xyz\"\>[^<]" *.htm
Gruß
LotPings
Bitte warten ..
Mitglied: curmudgeon
22.07.2010 um 12:05 Uhr
Vielen vielen Dank LotPings, damit konnte ich das Problem lösen!

Nun werde ich mir die Syntax noch genau anschauen, dass ich nicht nur kopiere sondern das nächste Mal so etwas schon selbst hinbekomme.

Viele Grüße
Bitte warten ..
Mitglied: LotPings
22.07.2010 um 13:03 Uhr
Prima, dann hier noch ein paar Erläuterungen:
  • Findstr arbeitet standardmäßig im RegEx Modus, das Leerzeichen zwischen li und class habe ich deshalb gegen einen Punkt (=beliebiges Zeichen) ausgetauscht da sonst 2 unabhängige mit oder verknüpfte Suchbegriffe angenommen würden.
  • /S = Rekursiv
  • /i = ignoriere Gross-/Kleinschreibung
  • Der Backslash dient zum Escapen der Sonderfunktion von < (=Wortanfang) , " (=Ende des Suchbegriffs)
  • Die eckigen Klammern stellen eine Klasse von Zeichen dar, das erste Zeichen ^ negiert die Klasse, [^<] bedeutet also alle Zeichen die NICHT "<" sind.

Gruß
LotPings
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Microsoft Office
gelöst Inhalte vieler excel dateien auslesen und als Liste wiedergeben (13)

Frage von tw3aker zum Thema Microsoft Office ...

Batch & Shell
Mehrere.csv Dateien zusammenfügen zu einer Datei mit bat (4)

Frage von Piotrney zum Thema Batch & Shell ...

Outlook & Mail
Outlook 2010 zeigt Übermittlungsfehler und erstellt mehrere PST-Dateien

Frage von thepatsch zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...