Zum Inhalt der Seite

Thread: Sed (UNIX) Frage

Eröffnet am: 24.06.2015 16:06
Letzte Reaktion: 04.07.2015 12:55
Beiträge: 5
Status: Offen
Unterforen:
- Computer & Technik




Verfasser Betreff Datum
Seite 1
 DarkSnow Sed (UNIX) Frage 24.06.2015, 16:06
 Scales Sed (UNIX) Frage 24.06.2015, 22:18
 DarkSnow Sed (UNIX) Frage 26.06.2015, 15:16
 damocles Sed (UNIX) Frage 30.06.2015, 11:53
 Vernochan Sed (UNIX) Frage 04.07.2015, 12:55
Seite 1



Von:    DarkSnow 24.06.2015 16:06
Betreff: Sed (UNIX) Frage [Antworten]
Hallo zusammen,

da ich mit der Suchfunktion leider nicht fündig wurde, habe ich mal einen neuen Thread eröffnet.
Ich habe noch nicht so viel Übung in Unix und hoffe nun hier einen Rat zu bekommen.
Ich versuche gerade mir aus Unix-Kommandos einen kleinen webcrawler basteln. Meine bisherigen Bemühungen haben auch funktioniert (beziehungsweise ich konnte immer eine Lösung finden), aber nun harkt es leider. Ich habe den html-Code bereits in eine Datei geschrieben und den weiterführenden Link identifiziert, sowie die Zeile in der er steht herausgefischt. Nun wollte ich mit sed den übrigen Zeileninhalt löschen, doch das funktioniert leider nicht.
Das Muster, dass den entsprechenden Link identifisiert, habe ich, wie gesagt bereits(als regulären Ausdruck) und wollte nun das ganze Ding gern verneinen, so dass alles, was nicht ins Muster passt, durch nichts ersetzt wird.
Würde mich freuen, wenn jemand helfen könnte.



Von:    Scales 24.06.2015 22:18
Betreff: Sed (UNIX) Frage [Antworten]
Evtl. kannst du einfach grep nehmen. Mit -o Option gibt es nur den Text aus, der durch den regulären Ausdruck gematched wurde. Ich bin mir aber nicht sicher ob ich dein Problem ganz verstanden hab.



Von:    DarkSnow 26.06.2015 15:16
Betreff: Sed (UNIX) Frage [Antworten]
Vielen Dank für die schnelle Antwort. An die Option -o hatte ich überhaupt nicht mehr gedacht!
Ich habe es gerade nochmal ausprobiert und es sieht wesentlich besser aus, als die bisherigen Ergebnisse.



Von:    damocles 30.06.2015 11:53
Betreff: Sed (UNIX) Frage [Antworten]
Avatar
 
Ich würde für einen web-crawler ohnehin keine shell-Scripte benutzen.. das ist irgendwie von hinten durch die Brust ins Auge. Dafür eignet sich ne Scriptsprache wie ruby definitiv besser, insbesondere mit der Library Nokogiri.
Es ist halt doch deutlich angenehmer, n CSS-Selektor drauf abzufeuern und das parsen ner dafür ausgelegten Library zu überlassen, anstatt das Rad neu zu erfinden und regular expressions für sed zu basteln, die mit allen Sonderfällen von Links im Seitenquellcode mit Zeilenumbrüchen, Tabs/Leerzeichen, langen Attributsketten (class, style, onclick, etc. pp.) und ähnlichem klarkommen.
Da liest sich sowas dann irgendwie hübscher:

#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
require 'httpclient'

httpc = HTTPClient.new
html = httpc.get_content('http://animexx.onlinewelten.com')
page = Nokogiri::HTML( html )

page.css('a').each do |link|
puts link['href']
end

Edit: irgendwie ist der CODE-tag kaputt ^^ hier sieht's gescheit aus.
スど -ぃ
Zuletzt geändert: 30.06.2015 12:11:34



Von:    Vernochan 04.07.2015 12:55
Betreff: Sed (UNIX) Frage [Antworten]
Avatar
 
Andererseits ist es als bash script schon deutlich mehr... linux'esque.... :D
Aber ich denke auch, dass ruby (oder andere Sprachen) da besser geeignet sind.
------------------------------------------

Diese Signatur ist ein wenig aus der Mode gekommen. Daher wurde sie durch DIESE aktuelle Signatur ersetzt.





Zurück