Ich versuche, mit „find“ oder „findstr“ bestimmte Zeichen in einer Datei zu finden, zum Beispiel Dateiinhalte wie:
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;ABC_test1"
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;ABC.test2"
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;(ABC)test3"
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;ABC_test4"
... und so weiter...
Ich möchte in der Datei das letzte „abc“ (fettgedruckter Teil) finden.
Diese Datei ist sehr groß, deshalb möchte ich keine „for“-Schleife verwenden, um ein Zeichen zu finden.
Können Sie mir bitte eine Lösung vorschlagen?
Antwort1
Wenn Sie ein Paket mit Unix-Tools wie Cygwin installieren möchten, können Sie den Befehl tac (das Gegenteil von „cat“) verwenden. Damit wird die Datei rückwärts gelesen/angezeigt. Anschließend können Sie das in findstr (oder grep) weiterleiten, um die letzte übereinstimmende Zeichenfolge aus der Datei abzurufen. Einige Versionen von tail unterstützen den Schalter -r, der auch die Zeilenreihenfolge in der Datei umkehrt.
Wenn das nicht klar ist, hinterlassen Sie mir einen Kommentar und ich werde es näher erläutern.
UPDATE: Unix-Tools können unter Windows verwendet werden, wenn Sie eines davon installieren:cygwin,unxutils,Kernel-Dienstprogramme. Folgen Sie diesen Links, um das eine oder andere zu installieren, und dann haben Sie, was Sie brauchen. Zu Ihrer Information: CygWin scheint am beliebtesten zu sein und ist das, was ich verwende.