[gelöst] Nur Zeilen beginnend mit ads. in Textdatei löschen
[gelöst] Nur Zeilen beginnend mit ads. in Textdatei löschen
Womit kann man denn alle Zeilen die mit einem bestimmten Begriff beginnen, in einer Textdatei löschen und zwar so das wirklich nur die Zeilen gelöscht werden, bei denen der Begriff direkt am Anfang steht.
Z.B. sollen alle Zeilen die mit ads. beginnen gelöscht werden.
Es wird also z.B. ads.example.com gelöscht, aber nicht example.ads.com oder abc.ads.example.com ...
Mit Sed kann man scheinbar nur alle Zeilen mit einem bestimmten regexp löschen, wenn ich nichts übersehen habe, aber das bedeutet zu viele falsepositives.
Z.B. sollen alle Zeilen die mit ads. beginnen gelöscht werden.
Es wird also z.B. ads.example.com gelöscht, aber nicht example.ads.com oder abc.ads.example.com ...
Mit Sed kann man scheinbar nur alle Zeilen mit einem bestimmten regexp löschen, wenn ich nichts übersehen habe, aber das bedeutet zu viele falsepositives.
Zuletzt geändert von debnuxer am 09.01.2013 00:53:49, insgesamt 1-mal geändert.
Das Leben ist wie ein überdimensionales Schachbrett.
Re: Nur Zeilen beginnend mit ads. in Textdatei löschen
Warum geht regexp nicht?
Such-string ^ads\. (^ steht für zeilenanfang ) ist es doch schon.
Oder ich verstehe dein Problem nicht
Such-string ^ads\. (^ steht für zeilenanfang ) ist es doch schon.
Oder ich verstehe dein Problem nicht
Re: Nur Zeilen beginnend mit ads. in Textdatei löschen
Achso, vielen Dank.
Das ^ war in meiner manpage nicht aufgeführt.
So hat es geklappt:
Das ^ war in meiner manpage nicht aufgeführt.
So hat es geklappt:
Code: Alles auswählen
sed '/^ads./d' ./test.txt > ./test2.txt
Das Leben ist wie ein überdimensionales Schachbrett.
Re: Nur Zeilen beginnend mit ads. in Textdatei löschen
debnuxer hat geschrieben:Das ^ war in meiner manpage nicht aufgeführt.
Code: Alles auswählen
man 7 regex
Edit: Bekommt den Link irgend jemand klickbar hin? Der will sowas in der URL haben: .://[^/]. Da aber der lokale Pfad mit / anfängt bekomme ich das nicht hin.
Habe schon das versucht:
[url]man:///usr/share/man/man7/regex.7.gz[/url]
[url]man:///usr/share/man/man7/regex.7.gz[/url]
Aber verarschen lässt er sich halt auch nicht...
rot: Moderator wanne spricht, default: User wanne spricht.
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Vielleicht so wenn ich deine Frage überhaupt verstanden habe
(ja es sind drei Slashes hintereinander)
Problem ist jedoch, dass eine URL zu einem Browser gehört und der Browser natürlich "man" nicht kennt. Wobei vielleicht kennt Konqueror das Format. Ich nutze nur Iceweasel und der kennt vor allem
Code: Alles auswählen
file:///usr/share/man/man7/regex.7.gz
Problem ist jedoch, dass eine URL zu einem Browser gehört und der Browser natürlich "man" nicht kennt. Wobei vielleicht kennt Konqueror das Format. Ich nutze nur Iceweasel und der kennt vor allem
Code: Alles auswählen
http://, https://, ftp://, file://
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
[url]man://../../../../../../usr/share/man/man7/regex.7.gz[/url]? In der Hoffnung, dass die ../ mengenmaessig ausreichen, um vom ~ bzw. CWD bis zum / aufzutauchen.
Zum Thema, doch, das ^ kommt in der sed-Dokumentation schon vor. Nur wird die ernstzunehmende Ausfuehrung als beschissenes "Info Document" ausgeliefert, anstatt als traditionelle Manpage [1]. Daher:
Gruss Cae
[1] dazu faellt mir immer http://xkcd.com/912/ ein
Zum Thema, doch, das ^ kommt in der sed-Dokumentation schon vor. Nur wird die ernstzunehmende Ausfuehrung als beschissenes "Info Document" ausgeliefert, anstatt als traditionelle Manpage [1]. Daher:
Code: Alles auswählen
$ zgrep -c \\^ /usr/share/info/sed.info.gz
60
$
[1] dazu faellt mir immer http://xkcd.com/912/ ein
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Sehr praktisch wäre im übrigen noch das löschen im Vim, da es selbsterklärend ist.
Code: Alles auswählen
:%s/^ads\..*\n//g
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
na klaruname hat geschrieben:(...) da es selbsterklärend ist.
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Der kritischen Nachfrage stimme ich in sofern zu, dass es eine Abnormitaet ist das Newline zu matchen.CH777 hat geschrieben:na klaruname hat geschrieben:(...) da es selbsterklärend ist.
Und im gleichen Zug will ich noch zeigen wie man es richtig macht:
Code: Alles auswählen
:g/^ads\./d
Use ed once in a while!
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Danke. Das habe ich gesucht. Dabei habe ich extra das Vim-Buch "Vim Ge-Packt" vor einiger Zeit gekauft und zum Teil gelesen. Ist wohl doch nicht ganz so trivial. Aber der Vim ist sonst wirklich toll.
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Wenn du den ex-Modus verstehen willst, dann solltest du bei ed(1) anfangen.uname hat geschrieben:Danke. Das habe ich gesucht. Dabei habe ich extra das Vim-Buch "Vim Ge-Packt" vor einiger Zeit gekauft und zum Teil gelesen. Ist wohl doch nicht ganz so trivial. Aber der Vim ist sonst wirklich toll.
Tipp: Drei Tage lang je eine halbe Stunde lang mit ed(1) editieren, dann einen Tag eine halbe Stunde lang die Unterschiede von ex(1) erforschen, am fuenften Tag die Unterschiede im ex-Modus des vi/Vim anschauen, und du wirst zukuenftig deinen Editor auf einem anderen Level nutzen.
Use ed once in a while!
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Ne, der Konqueror kennt nur absolute Pfade.Cae hat geschrieben:[url]man://../../../../../../usr/share/man/man7/regex.7.gz[/url]
rot: Moderator wanne spricht, default: User wanne spricht.
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Ne, der Konqueror kennt das "Protokoll" man, um manages anzuzeigen. Wenn ich html einfügen dürfte könnte ich für den Konqueror so einen Klickbaren Link auf das manual erstellen:uname hat geschrieben:Vielleicht so wenn ich deine Frage überhaupt verstanden habe(ja es sind drei Slashes hintereinander)Code: Alles auswählen
file:///usr/share/man/man7/regex.7.gz
Problem ist jedoch, dass eine URL zu einem Browser gehört und der Browser natürlich "man" nicht kennt. Wobei vielleicht kennt Konqueror das Format. Ich nutze nur Iceweasel und der kennt vor allemCode: Alles auswählen
http://, https://, ftp://, file://
Code: Alles auswählen
<a href="man:///usr/share/man/man7/regex.7.gz">regex(7)</a>
rot: Moderator wanne spricht, default: User wanne spricht.
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 215
- Registriert: 09.09.2009 13:33:17
Re: [gelöst] Nur Zeilen beginnend mit ads. in Textdatei lösc
Hallo,
wer es noch nicht kennt, mir hat es schon oft geholfen, nützliche SED Einzeiler http://sed.sourceforge.net/sed1line_de.html
Gruß
Shakky
wer es noch nicht kennt, mir hat es schon oft geholfen, nützliche SED Einzeiler http://sed.sourceforge.net/sed1line_de.html
Gruß
Shakky