Hello.
Lenne egy file-editálással kapcsolatos kérdésem:
Van több 100 htm file-om, amiknek a header részében van egy konkrét meta tag (ugyanaz mindenhol) és ebben kéne egy apró változtatást csinálni, nevezetesen egy szót kicserélni.
(META name=publisher content="Józsika, proba@emailcim.pelda")
erre:
(META name=publisher content="Béla, proba@emailcim.pelda")
Hogy tudnám ezt gyorsan megoldani, hogy ne kelljen egyenként átirogatni? Elég fontos lenne.
Sajna Windows XP alatt kell megoldanom a problémát (de gVim van!).
Előre is kösz!
P.S: A "code" BBCode tag használata mellett sem jelent meg rendesen a fenti 2 tag, ezért használtam "kacsacsőr" helyett zárójelet.
- 3797 megtekintés
Hozzászólások
a search & replace miert nem jo erre a celra? :)
- A hozzászóláshoz be kell jelentkezni
Mert több 100 file-ról van szó.
- A hozzászóláshoz be kell jelentkezni
editplus kell neked :)
siman megnyit tobb 100 filet is, kicsi, gyors, hasznos! :)
- A hozzászóláshoz be kell jelentkezni
SciTE find in files ua., nem? (Persze az editplus is jó.)
- A hozzászóláshoz be kell jelentkezni
Irjál rá vizuálbézik programot. :)
--
maszili
- A hozzászóláshoz be kell jelentkezni
Kényszerűségből használok Windózt (munkahely). Otthon Ubuntu van :)
- A hozzászóláshoz be kell jelentkezni
UNXUtils/MinGW/gnuwin32 -> sh és sed -> kész
- A hozzászóláshoz be kell jelentkezni
Kösz. A fenti környezetek közül melyiket ajánlanád?
- A hozzászóláshoz be kell jelentkezni
A UNXUtils volt fent a windowsos gépemen amíg volt, de van néhány hibája (pl. a seq nem hajtotta végre a -w kapcsolót, pedig a helpjében benne volt, csak kicsit volt bosszantó ezzel ezrekig számoló scripteket végrehajtani...)
A MinGW+MSYS-t egyszer próbáltam, korrekt, teljes GNU környezet. POSIX -> Win fordításhoz használják, tehát MINDEN benne van, de ehhez a feladathoz ezeknek 99%-a nem kell.
GnuWin32: sztem ide a legkézenfekvőbb, minden külön csomag, függőség libekkel vagy libek nélkül is telepíthetők, felrakod a basht + ami szükséges a scripthez és hajrá.
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy van egyszerűbb megoldás, de én így csinálnám.
kell egy my.script, amiben ez van:
/amit_cserélünk
:s/amit_cserélünk/amire_cserélünk
:wq
aztán meg parancssorból:
for %i in (*.html) do gvim.exe -S my.script %i
- A hozzászóláshoz be kell jelentkezni
Szóval vim van. Akkor megoldás is :) !
Először is kezdd el szerkeszteni az összes .htm-et:
vim *.htm
Aztán az első file-nál kezdj el felvenni egy makrót, pl. az 'a'-t:
qa
(Alul megjelenik a 'recording' felirat.) Csináld meg a cserét:
:%s/Józsika, /Béla, /g
(Természetesen finomabban is meg lehet fogni a csere környezetét, tehát pl. hogy csak a META utáni részen cseréljen, stb.)
Aztán mentsd le a file-t:
:w
Válts a következőre:
:next
Ekkor állítsd le a makró felvételét:
q
Aztán, ha még van 499 file-od (az első már kész van), akkor játszd le az 'a' makrót 499-szer:
499@a
És ha mindent jól csináltál, kész is vagy.
- A hozzászóláshoz be kell jelentkezni
ksgy, bastya_elvtars, Csigaa, zebra, gsimon!
Mindegyikőtöknek nagyon köszönöm. Asszem a gsimon féle Vim varázslatot fogom elkövetni, már csak tanulási-rögzülési okokból is :)
Majd jelzem, hogy sikerült-e.
- A hozzászóláshoz be kell jelentkezni
find {amitakarsz} | xargs perl -pi -e 's/foo/bar/'
vagy exec-kel.
t
- A hozzászóláshoz be kell jelentkezni
Hm, végül mielőtt script-elni kezdtem volna, találtam a Dreamweaver-ben egy ilyen opciót a "Search and Replace" részeként, úgyhogy a szűk idő miatt azzal oldottam meg. Viszont nem voltak haszontalanok a tanácsok, mert sokat tanultam belőlük és ha épp Unix alatt kell hasonló, akkor ott már nem lesz Dreamweaver :)
Még 1x kösz.
- A hozzászóláshoz be kell jelentkezni