• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Notepad++ gleiche Zeile in mehreren txt's einfügen

Surtshellir

Neues Mitglied
Hallo.

Ich weiß nicht ob ich hier richtig bin, deswegen stelle ich hier die Frage.

Viele von euch (denk ich mal) arbeiten auch mit Notepad++.

Umfangreich und viel mehr nützliche Funktionen, die das Arbeiten stetig verschnellert.
Bei eins komme ich aber nicht weiter.

Zzt modifiziere ich ein Spiel, und muss eine Zeile (ein Wort) in alle 335 Dateien einfügen (nicht ersetzen). Geht das mit dem Editor auch? Die Funktion wie man Wörter in mehreren Dateien ersetzt kenne ich bereits schon, Google fand auch keine Lösung. Denn sonst müsste ich bei 335 Dateien permanent Copy&Pase durchführen, deswegen hoffe ich es gibt da irgendeine Vereinfachung...

lg
 
Werbung:
Werbung:
Bin grad am überlegen, was so wichtig ist, dass es in 300 Dateien stehen müsste. Das Copyright? Ansonsten habe ich das Gefühl, dass das starke Dependencies verursachen kann, nicht?
 
"Bin grad am überlegen, was so wichtig ist, dass es in 300 Dateien stehen müsste. Das Copyright?"

Nein. Ich modifiziere lediglich das Spiel Hearts of Iron III und es geht dort um die speziellen Provinzen. Jede einzelne Provinz hat eine eigene .txt Datei und insgesamt sind es 335. Ich muss ein zweites "add_core" in diesen .txt's einfügen, damit zwei Länder ein Anspruch auf jeweilige Provinzen (letztendlich auf allen Provinzen) bekommen können.

Nun wäre es natürlich blöd, jede einzelne .txt von allen 335 zu öffnen und bei jeder einzelnen die Copy&Paste Funktion zu benutzen, deswegen erstelte ich dieses Thema in der Hoffnung, es gibt einen einfacheren Weg.

lg
 
Ah okay. Klingt dennoch etwas nach Dependency. ;)

Ich kenne keinen Editor mit dieser Funktion. Gut machbar wäre vermutlich ein kleines Shell- oder PHP- oder sonstwas Script, das rekursiv durch ein Verzeichnis läuft und allen .txt-Dateien deinen Code prefixt.
 
Werbung:
Ich weiß nicht, ob du mit Windows oder unixoidem OS unterwegs bist, aber mit den Keywords "batch script prepend to files" bzw. "shell script prepend to files" sollte sich was finden lassen.
 
Werbung:
Hallo,

mal wieder das alte Sublime Problem.

Der Editor wird (berechtigterweise) als empfehlenswert beschrieben. Allerdings wird zunächst nie eine direkte Vorgehensweise mit dem Editor verwiesen und auf Nachfrage auf englischsprachige Anleitungen verwiesen.

Bei nochmaliger Nachfrage erfolgt dann in der Regel der Hinweis, das man ohne entsprechende Englischkenntnisse das Erstellen von von Internetseiten doch gleich ganz bleiben lassen solle.

Sublime ist einer der besten Editoren. Es enthält aber viele eigenbrötlerische Lösungen, so dass man ihn nur sinnvoll nutzen kann, wenn man die Zeit hat sich entsprechend einzuarbeiten und mehr oder weniger täglich damit arbeitet.

Zur Lösung einzelner Aufgaben von Personen, die sich mit Sublime nicht auskennen, ist er schlicht oversized und nicht zugänglich genug. Ihn für solche Nachfragen wie in diesem Beitrag zu empfehlen ist für mich schlicht unsinnig und arrogant. Außer man zeigt direkt auf, wie mit dem Sublime das Problem gelöst werden kann.

Das Ersetzen über mehrere Dateien beherrscht zum Beispiel der UltraEdit.

Der enthält ein deutsches Menü und es gibt direkt einen Menüpunkt "Ersetzen in Dateien".

Dort kann der Dateityp ausgewählt werden sowie das Verzeichnis und ob auch Unterverzeichnisse berücksichtigt werden sollen.

Der Suchen- und Ersetzen-Text kann über mehrere Zeilen gehen, so dass Fehlersetzungen möglichst vermieden werden können.

Zudem können bei Bedarf reguläre Ausdrücke verwendet werden.

Der UltraEdit ist kostenpflichtig, kann aber für 30 Tage ohne Einschränkungen benutzt werden.

Gruss

MrMurphy
 
Bei aller Ehre MrMurphy, aber wir sind hier nicht dafür da, die Funktionsweise von Drittanbieter-Software zu erklären, geschweige denn Anleitungen für diese zu schreiben. Wenn UltraEdit das Setzen/Ersetzen von Texten über mehrere Dateien hinweg ebenfalls kann, ist es doch gut, dass du diese Software hier genannt hast, ebenso die kurze Vorgehensweise.

Das man sich grundsätzlich in eine neue Software einarbeiten muss, die man bisher noch nicht nutzte sollte jedem bewusst sein, auch dir!

Bzgl. der Verweise auf die Dokumentation/Sprachkenntnisse:
1. Wäre eine deutsche Doku vorhanden, hätte ich diese verlinkt.
2. Wer sich mit der Gestaltung/Erstellung von Webseiten befasst, kommt um Englisch nun mal nicht drumherum! Zum einen basieren alle gängigen Programmier- und Auszeichnungssprachen auf der englischen Sprache. Hier sollte ja dann schon das Verständnis zu den einzelnen Begriffen da sein und was sie im deutschen Sprachraum bedeuten. Ist dieses Verständnis nicht vorhanden, kann (oder kommt es sogar auch) bei dem kleinsten JustForFun-Entwicklers irgendwann zu dem Punkt, dass er für unbekannte Begriffe wieder irgendwelche Fragen in einem der vielen Online-Foren stellt und sich dann wundert, warum er mit Hinweisen auf das Lernen der englischen Sprache abgespeist wird.

Möchte ich bei meinem Auto selber die Bremsen belegen, muss ich mich auch mit der Technik dahinter auseinandersetzen, ob ich da nun Bock darauf hab, oder nicht!

Entweder man betritt einen neuen Bereich und eignet sich das dazu nötige Wissen selber an, oder man lässt es komplett sein. Sich nur hier und da einen Teil aneignen bringt niemandem etwas.
 
Werbung:
Wenn wir bei den Anleitungen sind, vim kann das auch :)

1. Alle files öffnen (vim *.txt) oder whatever
2. <ESC>qq
3. G
4. o
5. Schreiben deines Textes
6. <ESC>
7. :w
8. q
9. :bufdo execute "normal @q"

Aber ich denke UltraEdit ist auch gut
 
Jo, Leute. Die Funktion Search&Replace über mehrere Dateien hinweg beherrscht doch auch Notepad++, der Editor des TS. Und der TS schrieb, dass er diese Funktion bereits kennt.

Kann mir bitte jemand erklären, wie ihr mit Sublime oder sonstwas durch Search&Replace etwas an den Anfang aller Dateien setzen wollt? Suche nach dem Anfang?

Dreizeiler-Lösung:
Code:
for file in *.txt;do
    echo 'Some other string'>>"$file"
done
(Quelle: http://unix.stackexchange.com/quest...inning-and-end-of-multiple-text-files-in-bash )
 
Zuletzt bearbeitet:
Wurde ja ne heiße Diskussion, auf die ich gar nicht aus war. Nochmal: Ich will nicht Suchen & Ersetzen, ich will lediglich hinzufügen. Hätte nicht gedacht dass es noch so kompliziert wird, aber an eine .bat Datei habe ich schon gedacht. Ich programmiere auch nicht, ich modifiziere, ist ungefair tausend mal leichter als zu programmieren, aber anscheinend komm ich jetzt nicht drumherum *gg*. Folgendes:

Jede .txt sieht etwa in derjweilen aus:

owner = GER
controller = GER
add_core = DEU


infra = 10

Und ich möchte das bei allen 335 Dateien es am Ende so aussieht:

owner = GER
controller = GER
add_core = DEU
add_core = GER



infra = 10

add_core = GER soll bei allen in die nächste freie Zeile stehen damit GER ebenfalls Anspruch auf diese Provinz hat.

(Die Namen der .txt Files sehen in etwas so aus: "1621 - Neumunster.txt" (Zahl steht für die Provinz ID, der Name für den Namen der Provinz). Dürfen auch nicht geändert werden, weder Leerzeichen weg noch sonst was, sonst erkennt das Spiel es nicht und es crasht.)

Ja, ich weiß, das ich die Programmiersprache nicht sonderlich gut beherrsche und deswegen frage ich auch hier nach, denn ich dachte, es geht viel einfacher... Meine Englischkenntnisse sind nicht mieserabel, aber reichen für die Links absolut nicht aus um sie zu verstehen. Ist die .bat Datei kompliziert zu schreiben die erforderlich ist um das Ziel zu erreichen was ich habe?

Bin dankbar für jede Hilfe.

lg
 
Werbung:
Kurze zwischenfrage:

Muss dieses Einfügen am Anfang/Ende passieren oder an einem bestimmten Punkt oder ist die Position irrelevant?

Gibt es in diesem Ordner noch andere Datein außer den Provinzdaten und wenn ja, kann man diese von außen unterscheiden?
 
Muss dieses Einfügen am Anfang/Ende passieren oder an einem bestimmten Punkt oder ist die Position irrelevant?

Jein. Es muss lediglich eine eigene Zeile haben. Steht es hinter einem anderen "Wort", crasht das Spiel.

Gibt es in diesem Ordner noch andere Datein außer den Provinzdaten und wenn ja, kann man diese von außen unterscheiden?

Nein, gibt es nicht. Es sind alles diese Art von .txt Dateien. Selbst wenn es da noch andere geben würde, hätte ich sie in der Zeit während ich den Batch ausgeführt hätte kurzzeitig woanders hin verschoben. Es gibt dort noch Provinz txt's die noch etwas mehr drin stehen haben, wie zB "add_airbase" (Flugstüztpunkt), ist aber irrelevant, solange das was ich einfügen will eine eigene Zeile bekommt.

lg
 
Egal welchen Weg Du gehst, du musst der verwendeten sagen wo es den Text hinzufügen soll. Und was eignet sich besser als ein vorher stehender Text. Suche also nach

Code:
add_core = DEU

und ersetze es durch

Code:
add_core = DEU
add_core = GER
 
Werbung:
Daran habe ich auch schon gedacht :D In der Zeit wo ich auf diese Idee gekommen bin war ich hier noch nicht mal angemeldet. Aber es funktioniert nicht. Weder bei Notepad++, noch beim Sublime. Denn wenn ich Suchen und Ersetzen benutze, kann ich bei Ersetzen keine Zeilenumbrüche benutzen.
 
Würds ggf per PHP machen, das Verzeichnis via glob auslesen lassen und dann den Array durchlaufen. Dort jeweils den Inhalt auslesen , einen Zeilenumbruch und diese Zeile anhängen und damit das alte wieder überschreiben lassen.

Ich würde dir aber egal welche Methode du wählst raten , vorher ein Backup zu erstellen, damit du die Daten nicht verlieren kannst :)

Du kannst im Notepad duchaus Zeilenumbrüche beim ersetzen einbauen , nur musst du diese als \n\r kennzeichnen.
 
Zurück
Oben