You are here: PSPad forum > České diskuzní fórum > hromadný výmaz řádků

hromadný výmaz řádků

#1 hromadný výmaz řádků

Posted by: harmony36 | Date: 2020-03-06 13:36 | IP: IP Logged

Dobrý den páni odborníci!
Mám xml soubor, kde je více než 100 tisíc řádků. Jedná se o jazykové mutace pro obsáhlý program. Je tam angličtina, němčina, čeština, portugalština, španělština, italština, francouština, japonšina a čínština.
Chci nepotřebné vymazat a nechat jen angličinu, němčinu a češtinu. Jednotlivé bloky překladu vždy vypadají v tomto formátu:

<String Key="Export Resolution">
<de>Export-Auflösung</de>
<cs>Rozlišení exportu</cs>
<fr>Résolution d'exportation</fr>
<es>Resolución de exportación</es>
<it>Esporta risoluzione</it>
<pt>Exportar resolução</pt>
<jp>分解能</jp>
<zh>导出分辨率</zh>
</String>

Takže potřebuji vymazat vše co je mezi:
<fr> a </fr>
<es> a </es>
<it> a </it>
<pt> a </pt>
<jp> a </jp>
<zh> a </zh>

Jak toho, prosím, docílit za pomocí nějaké automatizace - zadání hromadného příkazu?
Děkuji a přejí hezký den.

Options: Reply | Quote | Up ^


#2 Re: hromadný výmaz řádků

Posted by: pspad | Date: 2020-03-06 14:08 | IP: IP Logged

Je možné na to jít 2 způsoby:
1. pomocí hledat/nahradit nahradit řádky za prázdné a pomocí menu Editace / Operace s řádky pak následně odstranit prázdné řádky

2. do nového souboru zkopírovat pouze "chtěné řádky", ale musely y se doplnit hlavičky, oddíly atd. Opět pomocí dialogu Hledat - tlačítko kopírovat.

Asi bych se přikláněl k prvnímu řešení, použije se hledat nahradit s regulárními výrazy
hledat: \<(fr|es|it|pt|jp|zh)\>.*
nahradi:
[x]Regularni vyrazy

Options: Reply | Quote | Up ^


#3 Re: hromadný výmaz řádků

Posted by: harmony36 | Date: 2020-03-07 12:53 | IP: IP Logged

Velice děkuji. Pak jsem ještě použil funkci výmaz prázdných řádků. Ještě však chybí jeden krůček k dokonalosti. Nyní je stav:

<String Key="Sample Width">
<de>Sample-Bitbreite</de>
<cs>Šířku vzorku</cs>

tento řádek chci vymazat
</String>
tento řádek nechci vymazat
<String Key="Stereo Interleaved">
<de>=</de>
<cs>Stereo prokládané</cs>

tento řádek chci vymazat
</String>

Jeden blok vždy začíná "String Key" , pak jsou překlady, a končí "</String>". Mezeru před tímto string chci vymazat, ale mezeru za ním nechci, protože odděluje bloky a je to pak přehledné.
Jak tedy vymazat jen prázdné řádky před "</String>" ?
Děkuji.

Options: Reply | Quote | Up ^


#4 Re: hromadný výmaz řádků

Posted by: pspad | Date: 2020-03-07 13:16 | IP: IP Logged

Vymazat vsechny a pak pridat jen ty, kde jsou chtene
Opet to jde pomoci regularnich vyrazu

Hledat: (\<\/String\>)
Nahradit: $1\n
[x]Regularni vyrazy

Zacit na konci a zvolit smer (o) Vzad

Options: Reply | Quote | Up ^


#5 Re: hromadný výmaz řádků

Posted by: harmony36 | Date: 2020-03-16 11:41 | IP: IP Logged

Děkuji, velmi jste mi pomohl a něco jsem se naučil. Buďte zdráv!

Options: Reply | Quote | Up ^






Editor PSPad - freeware editor, © 2001 - 2020 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR