Textdatei - Zeichen/-kette - (durch)suchen/ersetzen

Software besorgen und anwenden
Post Reply
Message
Author
McBain

Textdatei - Zeichen/-kette - (durch)suchen/ersetzen

#1 Post by McBain »

Moin,

also, wie's schon im Titel zu lesen ist: ich möchte gerne eine (Text)datei, aus einem Shell-Script heraus, nach eine(m/r) bestimmten Zeichen/-kette durchsuchen lassen und diese(s) dann durch ein(e) andere(s) ersetzen.

Ich denke mal das sollte möglich sein, ich weiß es aber nicht. Und darum habe ich auch keine Ahnung wo ich anfangen soll zu suchen.
All meine Bemühungen laufen nur auf ein unkontrolliertes und sinnloses "umhergestöber" in irgendwelchen Manuals, Büchen oder INet-Seiten heraus.

Schon mal ein Danke im Voraus
McBain

PS: Linux - (fast) alles ist Möglich. Aber wie?
Es gibt zwar ein Haufen an Dokumentationen aber die meisten sind immer noch in Englisch. Meine Muttersprache ist aber nun mal Deutsch und sogar in dieser fällt es mir manchmal (oder eher meistens:) schwer zu verstehen, was jemand meint, mit dem was er gesagt oder geschrieben hat. Wie soll ich da den (Un)Sinn englischer Texte verstehen?
Hinzu kommt der doch teilweise cryptische Syntax einiger/vieler Programme. Und ehrlich gesagt, ich habe nicht die Zeit mich hinzusetzen, eine Parameterkombination auszuprobieren, sehen was passiert (wenn man denn etwas sieht) und dann die nächste zu testen. Und das womöglich noch bei allen 4000 bis 8000 Paketen (wieviele Programme das dann auch immer sein mögen) die eine heutige Distrie so mit sich bringt.

Linux ist frustrierend ... nicht wirklich. Nur die Tatsache, daß man weiß, daß es ein leistungsfähiges OS ist und man trotzdem die letzten paar Jahre damit verbracht hat Windows zu verstehen ("... ein intuitives und schnell zu erlernendes OS ... wenn man lange genug damit arbeitet..." <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> ) anstatt diese Zeit in Linux zu investieren.

Descartes

Re: Textdatei - Zeichen/-kette - (durch)suchen/ersetzen

#2 Post by Descartes »

perl -npi -i 's/THIS/THAT/' DATEI

zum Beispiel

linux$ echo "schokoeis" > test.txt
linux$ perl -npi -i 's/schoko/erdbeer/' test.txt
linux $ cat test.txt
erdbeereis
linux $

Das ganze funktioniert natürlich auch wenn man es auf mehrere Dateien anwendet:
perl -npi -e 's/Copyright 2001/Copyright 2001,2002/' *.c

Zu deinem PS:
Ebenso wie im klerikalen Bereich sich Latein noch immer vorhält ist im Computerbereich und dort vor allem in der geschriebenen Dokumentation Englisch die vorherrschende Sprache. Zwar gibt es hier und da auch deutsche Übersetzungen (z.B. Howtos, Man-Pages und auch Bücher) aber die aktuellsten Informationen sind nun einmal Englisch. Einfach aus dem Grund weil auf diesem Planeten nun einmal ein in englisch geschriebener Text in beinahe jedem Land gelesen werden kann -- ganz im Gegensatz zu einem deutschen Text der ausserhalb von Europa (vielleicht noch Russland bzw. Gebiet der ehem. USSR) im grossen Ganzen einfach nicht verstanden wird.
Man muss aber auch nicht alle 8000 Programme die z.B. eine SuSE Distribution mitbringt installieren und man muss schon gar nicht alle Aufrufoptionen kennen. Ich selbst kenne auch nicht alle Optionen aller Programme die ich nutze -- aber die Optionen die ich _benötige_ (und die dazu notwendigen Programme) die kenne ich. Als Beispiel sei nur der o.g. Perl-Aufruf der immer mal wieder ganz "handy" ist.

McBain

Re: Textdatei - Zeichen/-kette - (durch)suchen/ersetzen

#3 Post by McBain »

Moin,

gut ... mit Perl hat das zwar nicht funktioniert, zumindest bei mir nicht, aber ich hatte wenigstens einen Anhaltspunkt, wonach ich suchen soll - 'nicht interaktive Textbearbeitung'.
Mit 'sed' habe ich dann hinbekommen, was ich wollte. Script ist fertig (oder zumindest macht es erst mal das was ich will, aber ein paar Kleinigkeiten sind da noch).

Danke
McBain

zum PS:
Ich habe nicht unbedingt was gegen englische Texte, ABER einen englischen Text oder dagegen einen deutschen Text mal schnell überfliegen und dabei rausfinden ob darin etwas steht, was man wissen will, ist nun mal doch ein kleiner Unterschied, welcher aber meistens Zeit kostet, die ich größtenteils nicht habe.

Eine vereinfachte/verbesserte Volltext oder Stichwortsuche, evtl. mit vollständig ausformulierten Fragen, wäre etwas das unter Linx sicherlich ganz hilfreich sein könnte - oder gibt es soetwas - mir ist es zumindest nicht bekannt!?

Post Reply