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-Key: 281259

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

Printed on: April 19, 2024 at 23:04 o'clock

Mitglied: 114757
114757 Aug 27, 2015 updated at 07:55:01 (UTC)
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>.
Member: reckheim
reckheim Aug 27, 2015 at 10:55:29 (UTC)
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 ?
Mitglied: 114757
114757 Aug 27, 2015 updated at 11:33:38 (UTC)
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
Member: reckheim
reckheim Aug 27, 2015 at 11:51:38 (UTC)
Goto Top
habe ich sofort genau so probiert:
es kommt blitzartig eine schwarze undeutliche Erscheinung, die sofort wieder weg ist .
Sonst passiert nichts.
Mitglied: 122990
122990 Aug 27, 2015 updated at 12:28:52 (UTC)
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
Member: TlBERlUS
TlBERlUS Aug 27, 2015 at 12:29:45 (UTC)
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
Member: reckheim
reckheim Aug 27, 2015 at 12:30:20 (UTC)
Goto Top
vorne eingefügt
leider kein Unterschied
Mitglied: 122990
122990 Aug 27, 2015 updated at 12:34:17 (UTC)
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.
Member: TlBERlUS
TlBERlUS Aug 27, 2015 at 12:32:11 (UTC)
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.
Member: reckheim
reckheim Aug 27, 2015 at 12:43:59 (UTC)
Goto Top
gotogotogot

Diese vorgenannten beiden Zeilen
abspeichern als ? ?
auf dem Bildschirm ? ?
Mitglied: 122990
122990 Aug 27, 2015 at 12:49:42 (UTC)
Goto Top
Member: reckheim
reckheim Aug 27, 2015 at 12:53:53 (UTC)
Goto Top
ich glaube, wir brechen das hier ab.
Ich kann solche Texte nicht mehr lesen-befolgen-anwenden.
Vielen Dank an alle
Mitglied: 114757
114757 Aug 28, 2015 at 07:51:47 (UTC)
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
Member: reckheim
reckheim Aug 31, 2015 at 16:13:10 (UTC)
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
Mitglied: 122990
Solution 122990 Aug 31, 2015 updated at 20:57:42 (UTC)
Goto Top
Dann auf gelöst setzen ,bitte nicht vergessen.Danke.