Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno SED - odstranenie znakov

Dotaz na sed, nasiel som tento nastroj, zda sa vynikajuci, ale aj zlozity. Potrebujem zo suboru odstranit vsetko medzi <PmtId> a </PmtId>, resp nemusi byt ako od vzoru po vzor, ale odstranit ako jeden vzor, vypisem si cely retazec
standardne znaky nieje problem, aj vlozit, ale to lomitko mi robi problem

Předmět Autor Datum
Třeba tak: https://stackoverflow.com/questions/44369398/how-to-replace-any-text-between-html-tags
Wikan 06.10.2022 14:59
Wikan
Diky, nieje to presne ono, ale pomohlo . . . znak \ A nevies ako spom spojil dva prikazy? Jeden tent…
truhlik 06.10.2022 15:42
truhlik
Tak ty tři příkazy napiš pod sebe do bat souboru, v čem je problém?
host 06.10.2022 16:40
host
V podstate žiadny, len som chcel vedieť či existuje nejaké elegantnejsie riešenie, napr priamo v sed…
truhlik 06.10.2022 19:43
truhlik
A nechceš vlastně použít --in-place volbu? https://archive.is/cLlnm#selection-795.0-829.59
Wikan 06.10.2022 19:47
Wikan
Ano, aj to som zvazoval, ale kedze v druhom kroku sa pridavaju nejake retazce, takze uzivatel inicia…
truhlik 07.10.2022 08:59
truhlik
V tom případě prostě: sed 1.txt > aa.txt && sed aa.txt > hotovo.txt && delete aa.txt
Wikan 07.10.2022 11:28
Wikan
diky, skusim, Zatial som zapasil s tym, ako nastavit premenne lebo nazov suboru je kazdy mesiac iny…
truhlik 07.10.2022 19:58
truhlik
Název souboru můžeš předávat jako parametr tomu bat souboru. Pak stačí např. v Total Commanderu se…
host 07.10.2022 20:05
host
To uz som vyriesil, v podstate som to spravil tak, ze bat si vypyta obdobie, za ktory sa subor sprac…
truhlik 09.10.2022 20:07
truhlik
Myslíš něco jako tohle? sed "s@neco@cosi@g;s/prvni/druhy/;s#tohle#tamhle#" aa.txt >bb.txt
gilhad 09.10.2022 15:15
gilhad
Diky, ale tomuto vobec nerozumiem :-) dal som dva prikazy do bat pod seba, so skeundovym zdrzanim me…
truhlik 09.10.2022 20:09
truhlik
já tam mám různé příkazy v tom parametru, oddělené středníky. Každý z těch příkazů používá jiný oddě… poslední
gilhad 09.10.2022 22:03
gilhad

Diky, nieje to presne ono, ale pomohlo . . . znak \
A nevies ako spom spojil dva prikazy? Jeden tento na zmazanie a druhy na vlozenie retazca, takto to mam kazde samostatne, kludne aj bat subor, ak by to bolo jednoduchsie ako
sed 1.txt > aa.txt
sed aa.txt > hotovo.txt
delete aa.txt
:-)
A bezim to pod win, nie linux

To uz som vyriesil, v podstate som to spravil tak, ze bat si vypyta obdobie, za ktory sa subor spracovava, a vstup uz si rozparsujem na pozadovane casti, den, mesiac, rok . . . podla toho je nazov suboru, a bude aj vysledok . . .akurat mi to dlhsie trvalo :-)

já tam mám různé příkazy v tom parametru, oddělené středníky. Každý z těch příkazů používá jiný oddělovač (@/#) (ne, že by to bylo nutné, ale dá se takhle ušetřit spousta escapování tím, že se jako oddělovač použije něco, co se ve výrazu nevyskytuje a pak to není potřeba escapovat). Data se čtou ze souboru aa.txt a výstup je přesměrován do souboru bb.txt

mění se:
neco za cosi (třetí parametr g = i víckrát na jednom řádku - globaly)
prvni za druhy
tohle za tamhle

(a samozřejmě, že v praxi tam budou spíš regulární výrazy a substituce)

Zpět do poradny Odpovědět na původní otázku Nahoru