• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

suchen und ersetzen mit linux wie ?

k.seemann

Newbie
ich nutze suchen und ersetzen von inforapid mit wine, nur hängt sich das programm ab und zu auf.
als entwicklerumgebung nutze ich eclipse für meine webseiten.

gibts ein gutes programm für suse 44.1 oder eins für wine welches dann aber stabil läuft.
 

abgdf

Guru
Was genau möchtest Du suchen und ersetzen. Text in einem Editor? Text in einer Datei? Es gibt für alles mächtige Lösungen.
 
OP
K

k.seemann

Newbie
In php. Dateien und alles was sonst so in Webseiten für Dateien drin sind. Ich will in allen Dateien gleichzeitig Nach Worten suchen und diese ändern.
 

abgdf

Guru
k.seemann schrieb:
In php. Dateien und alles was sonst so in Webseiten für Dateien drin sind. Ich will in allen Dateien gleichzeitig Nach Worten suchen und diese ändern.
Eine Vielzahl von Dateien gleichzeitig ändert man typischerweise mit einem Skript. Ursprünglich in sed, aber da das sehr kryptisch und unkomfortabel wird, nimmt man dafür meist Perl.

Auch PHP selbst kann Suchen und Ersetzen, aber meist läuft PHP wohl im Browser, oder (kenne PHP nicht so genau)? In Perl kann man jedenfalls Standalone-Skripte schreiben.
 

marce

Guru
oder man nimmt eines der oben per Google verlinkten Tools, einen bliebigen Editor (wie z.B. Eclipse, Bluefish, ...) der in Dateien unterhalb eines beliebigen Verzeichnisses suchen und ersetzen kann. Je nach verwendeter DE sind auch manche Filemanager in der Lage, das zu tun.

Perl und php sind da def. am Ziel vorbei.
 

gehrke

Administrator
Teammitglied
k.seemann schrieb:
In php. Dateien und alles was sonst so in Webseiten für Dateien drin sind. Ich will in allen Dateien gleichzeitig Nach Worten suchen und diese ändern.
Das konnte Eclipse out-of-the-box schon zu meinen Entwicklerzeiten - und das ist schon RICHTIG LANGE her...
 

abgdf

Guru
marce schrieb:
Perl und php sind da def. am Ziel vorbei.
Ach so, und warum hat der perl-Befehl dann def. spezielle Optionen genau dafür? Nämlich:
Code:
perl -pe 's/a/e/g' -i file.txt
ersetzt alle "a" zu "e" in Datei "file.txt".
 

marce

Guru
klar geht es mit Perl. Und mit PHP. Und sicher auch mit C, C++, Fortran und Cobol. Und in jeder anderen Sprache. Du kannst auch mit einem Akkuschrauber einen Nagel einschlagen.

Ich bleibe dabei: Es geht an der Anfoderung des TE vorbei. Dafür gibt's nette lustige ded. GUI-Tools - oder eben das Feature innerhalb von Eclipse oder jedem beliebigen anderen vernünftigen Editor.
 

abgdf

Guru
Na gut. Für ganz einfaches Suchen und Ersetzen nehme ich auch das Programm, mit dem ich gerade schreibe, z.B. OpenOffice (Strg+f, bzw. Strg+Alt+f).
Meistens schreibe ich inzwischen aber in vim (sogar z.B. auch Geschäftskorrespondenz), und schon da ist die "s/dies/das/"-Syntax gängig. Man findet sie in vim, sed, Perl (, awk glaube ich auch). Insofern, wenn die Frage lautet "suchen und ersetzen mit linux wie ?", dann läuft es mE auf diese Syntax (und die damit verbundenen Regulären Ausdrücke) hinaus.
Alles andere ist im Grunde Windows-Denken.
 

marce

Guru
abgdf schrieb:
Alles andere ist im Grunde Windows-Denken.
Nein, ist es nicht. "die Denke" hängt vom konkreten Anwendungsfall ab.

Z.B. weiß Eclipse, welche Dateien denn alle zu Deinem Projekt gehören (und welche nicht) - und z.B. würde ich vermuten, daß man als Entwickler nur die Dateien des aktuellen Projektes bearbeiten will...

Wie auch immer - der TE sollte sich mit der Doku des gewünschten Systems beschäftigen - ob er es nun über die Konsole, eine bliebige GUI oder seine IDE erledigt.
Man könnte es auch im Build-Host (wobei es sowas bei php-Seiten ja nicht zwingend geben muss) erledigen, ... :)
 
A

Anonymous

Gast
abgdf schrieb:
Ursprünglich in sed, aber da das sehr kryptisch und unkomfortabel wird, nimmt man dafür meist Perl.
abgdf schrieb:
....und warum hat der perl-Befehl dann def. spezielle Optionen genau dafür? Nämlich:
Code:
perl -pe 's/a/e/g' -i file.txt
ersetzt alle "a" zu "e" in Datei "file.txt".
Einfach nur genial, ich bin begeistert :D Ich hoffe mal die Frage willst du nicht wirklich beantwortet haben warum es in perl diese speizelle Option gibt. ;)

robi
 

marce

Guru
ja, bei dem Beispiel überlegte ich auch, wie denn die kryptische Befehlseile von sed für den gleichen Fall aussieht... :)
 

abgdf

Guru
Perl hat sich seine Features und Syntaxen von anderen Sprachen zusammengeklaut, und so die Einzelfunktionen u.a. von grep, sed und awk in einer (mE insgesamt wesentlich einfacheren) Sprache zusammengefaßt, das ist doch lange bekannt. Warum manche Leute andächtig davorstehen, aber Bedenken haben, es einfach einzusetzen, verstehe ich nach wie vor nicht.
Hier sind z.B. Beispiele dafür, wie Leute mit vim, sed oder Perl auch in großen Softwareprojekten erfolgreich in einer Vielzahl von Dateien suchen und ersetzen:

http://de.comp.editoren.narkive.com/rrrd2KSK/vim-strings-ersetzen-in-mehreren-dateien
http://www.linuxforen.de/forums/showthread.php?264122-VIM-100-Dateien-suchen-ersetzen-und-speichern-gleichzeitig

Es ist für einen Programmierer auch wirklich kein Problem, die Namen der Dateien, die zum Projekt gehören und in denen ersetzt werden soll, im Skript in einer Liste zu speichern. Dann sind die Projektdateien ebenfalls bekannt, dazu braucht man kein IDE (wie Eclipse).

Ich würde dafür übrigens schon deshalb ein eigenes Skript schreiben, weil ich den Output erstmal in ein anderes Verzeichnis schreiben und dort kontrollieren würde, bevor ich die Ursprungsdateien überschreiben würde (wenn ich meine Webseiten per Skript aktualisiere, insbesondere im Hinblick auf Bearbeitungsdatum und Inhaltsverzeichnis, mache ich das auch genau so). Ich glaube nicht, daß Standardanwendungen das so können.
 
OP
K

k.seemann

Newbie
mit eclipse hab ich es gerade getestet nur ignoriert eclipse die groß und kleinschreibung und das ist sehr schlecht.
kann man das irgendwo einstellen ?
 
Oben