reckheim
Goto Top

Doppelte Zeilen in Text-Datei löschen

Hallo
ich schreibe lange Übersetzungsprogramme in FoxPro in unten folgender Text-Datei-Form.
Die Datei ist allerdings durch Zusammenführung verschiedener Versionen voller Duplikate, welche gelöscht werden sollen.

Die Reihenfolge und alle Zeichen müssen unbedingt eingehalten werden.

Was für ein batch kommt da infrage ?


*
...
update papworth set deut = STRTRAN(deut,"cantoned", "bewink.")
update papworth set deut = STRTRAN(deut, 'waved & ', " gewellt u. ")
RETURN

Function frut
update papworth set deut = STRTRAN(deut,"cantoned", "bewink.")
RETURN

Function Klammer
*update papworth set deut = STRTRAN(deut,"]", "")
*update papworth set deut = STRTRAN(deut,"{ ", "{")
*update papworth set deut = STRTRAN(deut," }", "}")
*update papworth set deut = STRTRAN(deut,"( ", "(")
*update papworth set deut = STRTRAN(deut," )}", ")")
*update papworth set deut = STRTRAN(deut," ", " ")
*update papworth set deut = STRTRAN(deut," ", " ")
update papworth set deut = STRTRAN(deut," ;", ";")
update papworth SET deut = STRTRAN(deut,' &;',';')
RETURN
*

Content-ID: 281259

Url: https://administrator.de/contentid/281259

Ausgedruckt am: 14.11.2024 um 23:11 Uhr

114757
114757 27.08.2015 aktualisiert um 09:55:01 Uhr
Goto Top
Moin,
welche Zeilen sollen als Doppelt betrachtet werden ? Die bei deinen der String "update" im Text vorkommt ?
Denn die RETURN sind ja auch doppelt face-wink aber die willst du sicherlich nicht entfernen oder ?
Wobei dann bei deinem Beispiel die Funktion frut leer werden würde face-wink. Ist also vieles noch ziemlich unsicher in deiner Beschreibung.

Gruß jodel32

p.s. Bitte nutze Code-Tags für deinen Quellcode: <code> Quellcode </code>.
reckheim
reckheim 27.08.2015 um 12:55:29 Uhr
Goto Top
Hallo jodel32,
vielen Dank.
Ich bin hier offensichtlich ganz falsch gelandet - von Kommandozeilen Progarmmierung verstehe ich überhaupt nichts,
Ich kann mich da auch nihct mehr einarbeiten - bin erheblich sehbehindert und über 80.

Meine Datei besteht aus
ca 9000 Zeielen (in functions gegleidert und streng nach Reihenfolge), die alle beginnen mit
update papworth set deut = STRTRAN(deut,
und dann kommen die Unterschiede.

Mir RETURN hast Du recht:

Die Konsequenz ist also : man muß Zeile für Zeile das Löschen des Duplikats bestätigen.

Das geht wohl nicht mit batch ?
114757
114757 27.08.2015 aktualisiert um 13:33:38 Uhr
Goto Top
ich bin hier offensichtlich ganz falsch gelandet
Nein wieso ? Hier gibts genug Scripter ... Mit Powershell könntest du es so machen:
$file = 'C:\datei.txt'  
$clean = @()
$arr = @()
(gc $file) | %{
    if($_ -notlike '*update*'){  
        $clean += $_
    }else{
        if($_ -notin $arr){
            $clean += $_
            $arr += $_
        }else{
            if ((Read-Host "Folgende Zeile ist doppelt: '$_' . Soll sie gelöscht werden ? (j/n)") -eq 'n'){  
                $clean += $_
            }
        }
    }
}
$clean | set-content $file
Gruß jodel32
reckheim
reckheim 27.08.2015 um 13:51:38 Uhr
Goto Top
habe ich sofort genau so probiert:
es kommt blitzartig eine schwarze undeutliche Erscheinung, die sofort wieder weg ist .
Sonst passiert nichts.
122990
122990 27.08.2015 aktualisiert um 14:28:52 Uhr
Goto Top
habe ich sofort genau so probiert:
es kommt blitzartig eine schwarze undeutliche Erscheinung, die sofort wieder weg ist .
Sonst passiert nichts.
Powershell Execution Policy in einer administrativen Powershell-Konsole freischalten !
Set-ExecutionPolicy RemoteSigned -Force

Gruß grexit
TlBERlUS
TlBERlUS 27.08.2015 um 14:29:45 Uhr
Goto Top
Zitat von @122990:
Powershell Execution Policy in einer administrativen Powershell-Konsole freischalten !
> Set-ExecutionPolicy RemoteSigned -Force
> 
Powershell als Administrator starten.

Grüße,

Tiberius
reckheim
reckheim 27.08.2015 um 14:30:20 Uhr
Goto Top
vorne eingefügt
leider kein Unterschied
122990
122990 27.08.2015 aktualisiert um 14:34:17 Uhr
Goto Top
Zitat von @reckheim:

vorne eingefügt
leider kein Unterschied

Falsch !
Das mus separat in einer administrativen Powershell Konsole ausgeführt werden !!!!

Und außerdem öffne einfach eine Konsole und führe das Skript darin aus dann schließt sich das Fenster auch nicht gleich wieder und du siehst die Ausgaben oder eventuelle Fehlermeldungen.
TlBERlUS
TlBERlUS 27.08.2015 um 14:32:11 Uhr
Goto Top
Zitat von @reckheim:

vorne eingefügt
leider kein Unterschied

Du musst die powershell als Administrator starten -> Rechtsklick
Danach die Zeile von Grexit einfügen und bestätigen. Dann solltest du das Skript verwenden können.
reckheim
reckheim 27.08.2015 um 14:43:59 Uhr
Goto Top
gotogotogot

Diese vorgenannten beiden Zeilen
abspeichern als ? ?
auf dem Bildschirm ? ?
122990
122990 27.08.2015 um 14:49:42 Uhr
Goto Top
reckheim
reckheim 27.08.2015 um 14:53:53 Uhr
Goto Top
ich glaube, wir brechen das hier ab.
Ich kann solche Texte nicht mehr lesen-befolgen-anwenden.
Vielen Dank an alle
114757
114757 28.08.2015 um 09:51:47 Uhr
Goto Top
Hmm, unsere Antworten lesen aber anscheinend doch noch ?? Nutzt du keine Lesehilfen im Betriebsystem, Lupe, Schriftvergrößerung im Browser oder braille ?
Möglich ist alles man muss nur wollen, das Ergebnis musst du ja trotzdem noch sehen können.

Gruß jodel
reckheim
reckheim 31.08.2015 um 18:13:10 Uhr
Goto Top
Jetzt habe ich die - FÜR MICH - ideale Anwendung gefunden:
Dupli Find
http://www.rlvision.com/dupli/about.asp

Damit konnte ich die Duplikate einzeln anklicken und löschen, oder alle aufeinmal.
Vielen Dank nochmal
122990
Lösung 122990 31.08.2015 aktualisiert um 22:57:42 Uhr
Goto Top
Dann auf gelöst setzen ,bitte nicht vergessen.Danke.