Ich möchte wissen, wie ich wie in Notepad++ im verlinkten Tutorial einen bestimmten Text in mehreren Dateien suchen und ersetzen kann.
Antwort1
Hier verwende ich sed, um jedes Vorkommen des Wortes „cybernetnews“ durch „cybernet“ in jeder Datei mit der Erweiterung c im Verzeichnis /home/user/directory/ zu ersetzen.
find /home/user/directory -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;
Eine allgemeinere Variante, bei der Sie rekursiv vom Ausführungsverzeichnis aus suchen und nur mit regulären, lesbaren und beschreibbaren Dateien arbeiten:
find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \;
Antwort2
Der Stream-Editor sed ist ein leistungsstarkes Dienstprogramm für diese Art von Arbeit und meine erste Wahl. Wenn Sie dies jedoch von einem gewöhnlichen Texteditor aus mit einer nativen Ubuntu-basierten Anwendung tun möchten, würde ich Ihnen empfehlen, einen Blick auf Jedit zu werfen. Es ist in den Repositories verfügbar und kann durch Eingabe in Ihre Konsole installiert werden:
sudo apt-get install jedit
Starten Sie jedit, klicken Sie auf das Menüelement „Suchen“, klicken Sie in der Menüliste auf das Element „Im Verzeichnis suchen“. Das folgende Dialogfeld wird angezeigt:
Dies ähnelt Notepad++ und macht dasselbe. Ich glaube, das ist, was Sie wollen.
Antwort3
Eine weitere GUI-Option istregex:
Antwort4
Prüfen Sie mitGeany, es ist der perfekte NPP-Ersatz für Linux. Sie können genau das tun und zusätzlich reguläre Ausdrücke verwenden.