Failidest sõnade vahetamione

Kõik muud teemad, mis seotud Linuxi ja ei sobi mujale

Moderaator: Moderaatorid

Vasta
Kasutaja avatar
estysoft
Pingviini aktivist
Pingviini aktivist
Postitusi: 130
Liitunud: 13.07.2006, 20:25

Failidest sõnade vahetamione

Postitus Postitas estysoft »

Mul on palju text faile
Millest tahaksin teatud sõnu vahetada.

Et pikalt oleks see nii
otsin faile mis sisaldavad seda sõna
avan need failid ükshaaval ja kasutan find and replace


aga kui faile on palju on nii väga tylikas teha

kas kuidagi lihtsamalt ei saa
Kasutaja avatar
Qilaq
Vana Pingviin
Vana Pingviin
Postitusi: 1219
Liitunud: 25.10.2006, 18:58

Postitus Postitas Qilaq »

Guugelda näiteks 'find and replace in multiple text files linux', mis annab ohtralt võimalusi kirjutada väike skript, mis asja ära teeb.
Ka näiteks Konqueroril on samalaadne võimalus: vali failid ja siis Vaade->Vaate režiim->Failide asendamise vaade (võimaluse asukoht on vahest imelik ja asja nimetus mitte päris kohane, aga igal juhul peaks sellega saama vajalikud asjad ära asendada - algul näidatakse, mida saad asedanda, lõplikuks asendamiseks (võib ju selguda, et mõnes kohas sa tegelikult ei tahagi asendada) tuleb anda lõplik käsk "Asenda")
Tõlkija (Mandriva Linux, KDE, Scribus, CUPS)
Kasutaja avatar
bobc
Pingviini aktivist
Pingviini aktivist
Postitusi: 165
Liitunud: 09.07.2005, 03:00

Postitus Postitas bobc »

pakuks välja sellise reakese.
findiga leiad kõik txt filed ja sed asendad OTSITAV -> ASENDUS eks.
Ole sellega ettevaatlik, otsib kõik txt filed ja asendab.

Kood: Vali kõik

find . -name '*.txt' -exec sed -i 's@OTSITAV@ASENDUS@' {} \;
Pilt
Kasutaja avatar
Qilaq
Vana Pingviin
Vana Pingviin
Postitusi: 1219
Liitunud: 25.10.2006, 18:58

Postitus Postitas Qilaq »

Njah, sellepärast ongi "reakesed" vahest natuke kehvad, et nad teevad asenduse kohe ja kõikjal ära või kui isegi neisse eelneva kinnituse küsimine kuidagi sisse pookida, siis enamasti on selle uurimine terminali(emulaatori)s suhteliselt nigel tegevus (kui asendamisele kuuluvaid asju vähegi enamates failides leidub).
See Konqueroris kasutamise võimalus on selles mõttes hea, et esimese asjana simuleeritakse asendamist, näidates, kus antud fraas esineb, ja sa saad sealt eemaldada ebavajaliku ja alles siis asendamise tegelikult ette võtta.
(Veel nii palju, et see ei pruugi vaikimisi paigaldatud olla ja seeläbi ka kasutatav olla - see on tegelikult rakendus nimega KFileReplace, mis kuulub moodulisse kdewebdev - sellepärast ongi seal seadistamise dialoogis vaikimisi ette antud failitüüpideks html, css ja muud veebiarendusse puutuvad asjad, aga sinna saab loomulikult oma suva järgi igasuguseid muid mustreid lisada ja eemaldada)
Tõlkija (Mandriva Linux, KDE, Scribus, CUPS)
Kasutaja avatar
kalamaja
Pingviini külastaja
Pingviini külastaja
Postitusi: 21
Liitunud: 08.07.2005, 03:00

Postitus Postitas kalamaja »

ise kasutan rpl-i
man rpl on piisav abi olemas. Väike näide ka(asendada saab näiteks ühe rea mitme reaga):

Kood: Vali kõik

rpl -dwe 'oli tore' 'oli jama\ntäitsa jama' *
Vasta