Edit mit Maske? Maske anfertigen?
Moderators: Hacker, Stefan2, white
Edit mit Maske? Maske anfertigen?
Hallo, zuerst einmal ....
Ich bin absoluter Newbi und hab dringend nen paar Fragen an euch.
Ich habe auf der Arbeit mit dem Total Commander zu tun, und muss mit diesem eine Datei editieren...
Diese Dateien sind immer so aufgebaut:
BLA BLA
Roodstock
10000000 [b]1[/b] 10000000000
10000000 [b]1[/b] 10000000000
22222222 [b]2[/b] 22222222222
22222222 [b]2[/b] 22222222222
Roodstock
Die Fett geschriebenen einzelnen Zahlen sollen einfach nur umgedreht werden, dh. die 1 wird ne zwei und die 2 ne 1.
Den technischen Hintergrund spare ich mir mal....
Wichtig ist das nur diese 1 u. 2 editiert werden, ab und zu sind auch 3 und 4 einzeln vorhanden, die müssen dann übergangen werden.
So meine eigentliche Frage, kann man das automatisieren? Bis jetzt musste ich jede Datei per Hand ändern, was recht aufwendig ist.
Ich danke im Vorraus......
Ich bin absoluter Newbi und hab dringend nen paar Fragen an euch.
Ich habe auf der Arbeit mit dem Total Commander zu tun, und muss mit diesem eine Datei editieren...
Diese Dateien sind immer so aufgebaut:
BLA BLA
Roodstock
10000000 [b]1[/b] 10000000000
10000000 [b]1[/b] 10000000000
22222222 [b]2[/b] 22222222222
22222222 [b]2[/b] 22222222222
Roodstock
Die Fett geschriebenen einzelnen Zahlen sollen einfach nur umgedreht werden, dh. die 1 wird ne zwei und die 2 ne 1.
Den technischen Hintergrund spare ich mir mal....
Wichtig ist das nur diese 1 u. 2 editiert werden, ab und zu sind auch 3 und 4 einzeln vorhanden, die müssen dann übergangen werden.
So meine eigentliche Frage, kann man das automatisieren? Bis jetzt musste ich jede Datei per Hand ändern, was recht aufwendig ist.
Ich danke im Vorraus......
- StickyNomad
- Power Member
- Posts: 1933
- Joined: 2004-01-10, 00:15 UTC
- Location: Germany
2Tenmat
Hi und Willkommen!
Das geht am einfachstem mit dem Mehrfach-Umbenenn-Tool (STRG+M) oder im Menu 'Datei'
Falls die zu ersetzende Ziffer immer an derselben Stelle im Dateinamen steht, geht das folgendermassen:
0. Backup der Dateien machen (man weiss ja nie...)!
1. Alle Dateien markieren, in denen die 1 zur 2 werden soll
2. STRG+M drücken
3. In die Umbenenn-Maske folgendes eingeben: [N1-8]2[N10-], das Ergebnis wird als Vorschau angezeigt. Wenn es passt, Klick auf 'start', -> fertig
dann das Umbennn-Tool verlassen, und mit den restlichen Dateien obiges wiederholen, nur dann mit der Umbennnmaske [N1-8]1[N10-]
Im UmbenennTool kannst Du auch mal mit F1 in die Hilfe schauen, dort sind weitere Infos zu finden.
Das geht sicherlich eleganter und in einem Schritt mit Regulären Ausdrücken (damit hab ichs leider noch nicht so), aber auf die Schnelle gehts auch so, denke ich
Wie gesagt, es sei denn, das zu ersetzende Zeichen steht an unterschiedlichen Stellen im Dateinamen, dan bleiben nur RegEx, aber hier gibts genug Leute, die das gut beherrschen...
Hi und Willkommen!
Das geht am einfachstem mit dem Mehrfach-Umbenenn-Tool (STRG+M) oder im Menu 'Datei'
Falls die zu ersetzende Ziffer immer an derselben Stelle im Dateinamen steht, geht das folgendermassen:
0. Backup der Dateien machen (man weiss ja nie...)!
1. Alle Dateien markieren, in denen die 1 zur 2 werden soll
2. STRG+M drücken
3. In die Umbenenn-Maske folgendes eingeben: [N1-8]2[N10-], das Ergebnis wird als Vorschau angezeigt. Wenn es passt, Klick auf 'start', -> fertig
dann das Umbennn-Tool verlassen, und mit den restlichen Dateien obiges wiederholen, nur dann mit der Umbennnmaske [N1-8]1[N10-]
Im UmbenennTool kannst Du auch mal mit F1 in die Hilfe schauen, dort sind weitere Infos zu finden.
Das geht sicherlich eleganter und in einem Schritt mit Regulären Ausdrücken (damit hab ichs leider noch nicht so), aber auf die Schnelle gehts auch so, denke ich

Ähm, ich glaube, Tenmat möchte nicht die Dateinamen ändern, sondern den Inhalt der Dateien. Dafür kann man den TC nicht wirklich komfortabel benutzen.
Stattdessen empfiehlt es sich ein externes Tool zu benutzen, z.B. Inforapid Suchen und Ersetzen. Damit kann man Textdateien durchsuchen, ggf. mit Regular expressions, und dann die gesuchten Texte in allen gefundenen Dateien ersetzen.
sheepdog
Stattdessen empfiehlt es sich ein externes Tool zu benutzen, z.B. Inforapid Suchen und Ersetzen. Damit kann man Textdateien durchsuchen, ggf. mit Regular expressions, und dann die gesuchten Texte in allen gefundenen Dateien ersetzen.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
ja, ich möchte den Inhalt der Dateien ändern, nicht den Namen der Datei.
RODSTOCK
004
029
001 000 2 500 00001 008 02290 +00051 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
00080 100 00180 100 00330 100 00480 100 00630 100 00780 100 00930 100 01080 100
01230 100 01380 100 01530 100 01680 100 01830 100 01980 100 02130 100 02230 100
002 000 2 500 00001 008 02290 +00151 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
00080 100 00180 100 00330 100 00480 100 00630 100 00780 100 00930 100 01080 100
01230 100 01380 100 01530 100 01680 100 01830 100 01980 100 02130 100 02230 100
003 000 2 500 00001 008 02290 +00213 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
00080 100 00180 100 00480 100 00780 100 01080 100 01380 100 01680 100 01980 100
02130 100 02230 100 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000
004 000 2 500 00001 008 02290 +00377 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
die Roten 2en sollen zu 1en werden.....(das ist nur nen Dateiauszug)
Die Position ist immer dieselbe, nur wenn dann die 1en zur 2 werden is es anders
RODSTOCK
004
029
001 000 2 500 00001 008 02290 +00051 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
00080 100 00180 100 00330 100 00480 100 00630 100 00780 100 00930 100 01080 100
01230 100 01380 100 01530 100 01680 100 01830 100 01980 100 02130 100 02230 100
002 000 2 500 00001 008 02290 +00151 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
00080 100 00180 100 00330 100 00480 100 00630 100 00780 100 00930 100 01080 100
01230 100 01380 100 01530 100 01680 100 01830 100 01980 100 02130 100 02230 100
003 000 2 500 00001 008 02290 +00213 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
00080 100 00180 100 00480 100 00780 100 01080 100 01380 100 01680 100 01980 100
02130 100 02230 100 00000 000 00000 000 00000 000 00000 000 00000 000 00000 000
004 000 2 500 00001 008 02290 +00377 +00000 +00000 +090 __________ 0
005 000 000 00000 00000 00000 100
000 000 000 0 0 002
die Roten 2en sollen zu 1en werden.....(das ist nur nen Dateiauszug)
Die Position ist immer dieselbe, nur wenn dann die 1en zur 2 werden is es anders
In besagten Inforapid SUchen & Ersetzen müsste als
Suchbegriff:([[:digit:]]{3} [[:digit:]]{3})( 2)
Dateimaske: <Dateimaske, z.B. *.txt oder Rodstock *.txt>
Verzeichnis: Pfad\zu\den\Dateien
Suchmethode:Mustervergleich
stehen.
Im Ersetzen Tab wäre dann:
Ersetze durch: 1
Ersetze: 2. Unterausdruck
einzutragen. Zunächst drückt man dann im Suche-Tab auf Start, dort werden dann alle Dateien angezeigt, die mit dme Suchausdruck gefunden wurden. Wenn die Auswahl stimmt, dann geht man in den Ersetzen-Tab und drückt hier auf Start.
Nun werden alle Stellen aufgelistet, die das Programm ersetzen würde. Nun kann man entweder jede Erstzung einzeln bestätigen, oder aber alle Ersetzungen ohne Nachfrage vornehmen lassen.
sheepdog
Suchbegriff:([[:digit:]]{3} [[:digit:]]{3})( 2)
Dateimaske: <Dateimaske, z.B. *.txt oder Rodstock *.txt>
Verzeichnis: Pfad\zu\den\Dateien
Suchmethode:Mustervergleich
stehen.
Im Ersetzen Tab wäre dann:
Ersetze durch: 1
Ersetze: 2. Unterausdruck
einzutragen. Zunächst drückt man dann im Suche-Tab auf Start, dort werden dann alle Dateien angezeigt, die mit dme Suchausdruck gefunden wurden. Wenn die Auswahl stimmt, dann geht man in den Ersetzen-Tab und drückt hier auf Start.
Nun werden alle Stellen aufgelistet, die das Programm ersetzen würde. Nun kann man entweder jede Erstzung einzeln bestätigen, oder aber alle Ersetzungen ohne Nachfrage vornehmen lassen.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
- StickyNomad
- Power Member
- Posts: 1933
- Joined: 2004-01-10, 00:15 UTC
- Location: Germany
Also zunächst wegen des reinen Textdokuments:
Ein Word Dokument enthält neben dem reinen Text auch noch Steuerzeichen für die Formatierungen. So wird beispielsweise beginnende Fettschrift mit einem Byte 255+032 gekennzeichnet und das Ende des Fetten Bereichs mit byte 255 + 033 (Das habe ich mir jetzt ausgedacht, geht mir nur ums Prinzip). Da außerdem noch die Seitenformatierungen usw. ebenfalls im Dokment vorkommen, wird das Doklument unbrauchbar, sobald sich die Größe ändert (oder zufällig eine Formatierung den Suchtext enthält). Wenn Du tatsächlich nur den Textteil änderst, und zum Beispiel aus
"Hallo Oma!" "Hallo Opa!" machst, dann ist das Dokument auch weiter zu verwenden, weil keine Größenänderung passiert.
Suchen & Ersetzen macht sich nicht die Mühe, zu kontrollieren, ob Du wirklich ein reines Textdokument bearbeitest. Deshalb immer die Warnung. Da musst Du halt genau wissen was Du tust, weil sie dafür keine VErantwortung übernehmen.
Du kannst das aber testen, indem Du Dir die Datei einfach im Lister ohne Plugins ansiehst [Alt+Umsch+F3]. Dann sollte eben nur lesbarer Text erscheinen und keine kleinen Kästchen oder anderer Zeichenwirrwarr.
Nun zu dem regulären Ausdruck:
Neben der "Suchbegriff" Zeile hast Du 2 Buttons, einmal Operator, dann Zeichen. Dort kann man ganz bequem die richtigen Regulären Ausdrücke Auswählen. Dort habe ich also nach "Ziffer"=[[:digit:]] 3 mal={3} gesucht, dann ein Leerzeichen, dann noch einmal Ziffer, 3 mal, dann die "2".
Dann habe ich den Teil vor der 2 in Klammern gesetzt, damit dies als erster Unterausdruck gewertet wird, und die 2 ebenfalls, der 2. Unterausdruck. Dadurch wird zwar die gesamte Zeile gefunden: aber es wird eben nur die 2 (der 2 Unterausdruck) ersetzt.
Hoffe das ist jetzt soweit klar.
sheepdog
Ein Word Dokument enthält neben dem reinen Text auch noch Steuerzeichen für die Formatierungen. So wird beispielsweise beginnende Fettschrift mit einem Byte 255+032 gekennzeichnet und das Ende des Fetten Bereichs mit byte 255 + 033 (Das habe ich mir jetzt ausgedacht, geht mir nur ums Prinzip). Da außerdem noch die Seitenformatierungen usw. ebenfalls im Dokment vorkommen, wird das Doklument unbrauchbar, sobald sich die Größe ändert (oder zufällig eine Formatierung den Suchtext enthält). Wenn Du tatsächlich nur den Textteil änderst, und zum Beispiel aus
"Hallo Oma!" "Hallo Opa!" machst, dann ist das Dokument auch weiter zu verwenden, weil keine Größenänderung passiert.
Suchen & Ersetzen macht sich nicht die Mühe, zu kontrollieren, ob Du wirklich ein reines Textdokument bearbeitest. Deshalb immer die Warnung. Da musst Du halt genau wissen was Du tust, weil sie dafür keine VErantwortung übernehmen.
Du kannst das aber testen, indem Du Dir die Datei einfach im Lister ohne Plugins ansiehst [Alt+Umsch+F3]. Dann sollte eben nur lesbarer Text erscheinen und keine kleinen Kästchen oder anderer Zeichenwirrwarr.
Nun zu dem regulären Ausdruck:
Neben der "Suchbegriff" Zeile hast Du 2 Buttons, einmal Operator, dann Zeichen. Dort kann man ganz bequem die richtigen Regulären Ausdrücke Auswählen. Dort habe ich also nach "Ziffer"=[[:digit:]] 3 mal={3} gesucht, dann ein Leerzeichen, dann noch einmal Ziffer, 3 mal, dann die "2".
Dann habe ich den Teil vor der 2 in Klammern gesetzt, damit dies als erster Unterausdruck gewertet wird, und die 2 ebenfalls, der 2. Unterausdruck. Dadurch wird zwar die gesamte Zeile gefunden:
Code: Select all
3Ziffern, ein Leerzeichen, 3 Ziffern, ein Leerzeichen, eine 2
Hoffe das ist jetzt soweit klar.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Das habe ich doch oben schon getan:
Damit wird die 2 gefunden, die nach 2 dreiergruppen von Ziffern auftaucht, alles jeweils getrennt durch ein Leerzeichen. Also
([[:digit:]]{3} [[:digit:]]{3}) findet "000 012" und "345 039" usw.
( 2) findet " 2".
Dadurch das "([[:digit:]]{3} [[:digit:]]{3})" in Klammern steht, wird es als ein Suchausdruck verarbeitet( 1. Unterausdruck), während "( 2)" wegen der Klammern ebenfalls als Suchasudruck gilt (2. Unterausdruck). Deshalb musst Du im Ersetzen-Tab dann den 2. Unterausdruck durch die " 1" ersetzen lassen.
Bei mir hat das genau Dein Beispiel perfekt geändert.
Alle Klarheiten beseitigt?
sheepdog
Code: Select all
Suchbegriff:([[:digit:]]{3} [[:digit:]]{3})( 2)
([[:digit:]]{3} [[:digit:]]{3}) findet "000 012" und "345 039" usw.
( 2) findet " 2".
Dadurch das "([[:digit:]]{3} [[:digit:]]{3})" in Klammern steht, wird es als ein Suchausdruck verarbeitet( 1. Unterausdruck), während "( 2)" wegen der Klammern ebenfalls als Suchasudruck gilt (2. Unterausdruck). Deshalb musst Du im Ersetzen-Tab dann den 2. Unterausdruck durch die " 1" ersetzen lassen.
Bei mir hat das genau Dein Beispiel perfekt geändert.
Alle Klarheiten beseitigt?
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Ja, natürlich findet er das, was davor steht, sonst wäre es ja nicht möglich, die 2 an genau dieser Position zu finden.
Der Trick besteht aber darin, dass man mit Hilfe der Klammern den gesamten Suchausdruck in 2 Teilausdrücke aufdröselt.
Und damit kann man beim Ersetzen sagen, dass eben nur die 2, nämlich der 2. Unterausdruck, ersetzt werden soll.
Bild 1
Bild 2
Bild 3
Bild 4
Bild 5
Bild 6
Bild 7
Du kannst natürlich auch einfach nach
suchen, aber dann wird Dir auch eine Zeile mit:
012 023 022 043 2 123
gefunden, und das wolltest Du doch nicht, oder?
sheepdog
Der Trick besteht aber darin, dass man mit Hilfe der Klammern den gesamten Suchausdruck in 2 Teilausdrücke aufdröselt.
Und damit kann man beim Ersetzen sagen, dass eben nur die 2, nämlich der 2. Unterausdruck, ersetzt werden soll.
Bild 1
Bild 2
Bild 3
Bild 4
Bild 5
Bild 6
Bild 7
Du kannst natürlich auch einfach nach
Code: Select all
2
012 023 022 043 2 123
gefunden, und das wolltest Du doch nicht, oder?
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams

So nächstes Prob:
In dem Dok. stehen
027 000 2 500 das war vorher 027 000 1 500
028 000 2 500 das war vorher 028 000 1 500
da hab ich jetzt die 2 ersetzt mit der 1.
Ok, weiter: Im selben Dok. soll aber auch diese 1(unten) in eine 2 gewandelt werden, wenn ich jetzt ersetzte, wandelt er die oben schonmal gewandelten ja auch wieder zurück.
029 000 1 500
030 000 1 500
Kann ich das Problem lösen? Ich könnte hinterher die Umwandlung einzeln bestätigung und gucken, aber dann kann ichs auch gleich allein wandeln.