Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 3604
Search & Replace i flere tekstfiler samtidig er noe man kan gjøre i samtlige av editorene som finnes der ute, hvor man velger en mappe og den går igjennom alle undermapper og søker og erstatter. Men jeg har behov noe litt mer, jeg ønsker å søke/erstatte veldig mange unike ord, og vil helst slippe å gjøre dette manuelt for hvert eneste ord.

Jeg har en lang liste med strings jeg skal søke etter, og en tilsvarende liste med strings jeg skal erstatte de med (et lite eksempel nedenfor):

Kode

Search: "376064" | Replace: "376064_01_9464"
Search: "018975" | Replace: "018975_02_0882"
Search: "331690" | Replace: "331690_03_7316"
Search: "126009" | Replace: "126009_04_2925"
Search: "580431" | Replace: "580431_05_4111"
Search: "546172" | Replace: "546172_06_6046"
Search: "629467" | Replace: "629467_07_7418"
Search: "914356" | Replace: "914356_08_6063"
Search: "235717" | Replace: "235717_09_1866"
Search: "770217" | Replace: "770217_10_3523"

Er det noen som vet hvordan man kan utføre search & replace over flere tekstfiler basert på to ordlister (en liste for search, og en for replace)?


Jeg har ikke klart å google meg frem til noe, men jeg tenkte kanskje det fantes et commandline utility e.l. som lar deg gjøre dette?
Eksempel: commandUtil.exe "Input\Folder\Path\*.txt" "searchList.txt" "replaceList.txt"
Har de 1 til 1 til 1 forhold? Altså første linje i input matcher første i search og første i replacelist?
Sitat av Deportimus Vis innlegg
Har de 1 til 1 til 1 forhold? Altså første linje i input matcher første i search og første i replacelist?
Vis hele sitatet...
Japp, indeksene korrellerer med hverandre i de to forskjellige listene
Du kan programmere det selv, jeg fant et skript til PowerShell som du kan prøve å bruke.

Kode

$lookupTable = @{
    'something1' = 'something1aa'
    'something2' = 'something2bb'
    'something3' = 'something3cc'
    'something4' = 'something4dd'
    'something5' = 'something5dsf'
    'something6' = 'something6dfsfds'
}

$original_file = 'C:\Dokumenter\Filer\*'
$destination_file =  'C:\Dokumenter\Filer-med-erstattet-tekst\*'

Get-Content -Path $original_file | ForEach-Object {
    $line = $_

    $lookupTable.GetEnumerator() | ForEach-Object {
        if ($line -match $_.Key)
        {
            $line -replace $_.Key, $_.Value
        }
    }
} | Set-Content -Path $destination_file
Det innebærer imidlertid at du endrer lista di til å se sånn ut:

Kode

    'tekst' = 'erstatning'
    'tekst1' = 'erstatning1'
    'tekst2' = 'erstatning2'
    'tekst3' = 'erstatning3'
    'tekst4' = 'erstatning4'
    'tekst5' = 'erstatning5'
Det går sikkert an å bruke det som heter arrays også, men fant ikke et skript for det.