Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Search Replace pomoc

[es] :: Linux :: Search Replace pomoc

[ Pregleda: 1606 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ntesic

Član broj: 69927
Poruke: 65
91.150.121.*



+7 Profil

icon Search Replace pomoc02.11.2009. u 13:59 - pre 175 meseci
Imam gomilu html fajlova u poddirektorijumima u kojima treba zameniti linkove, znaci ima recimo ovako <a href="http://www.nekidomen.com/gfdgdf.php?gdfgd">
<a href="http://www.nekidomen.com/fyt.php?erre> itd..., samo ovo iza nekidomen je razlictio, a treba sve to da promenim u http://www.mojdomen.com/nesto.php
Znaci samo da se zada koji domen da se trazi i sve posle njega sto se pojavljuje u linku zameni sa http://www.mojdomen.com/nesto.php

Jel je moguce ovo u Linuxu?
 
Odgovor na temu

mmirkov
Milan Mirkovic
Novi Sad

Član broj: 95592
Poruke: 22
109.93.18.*



Profil

icon Re: Search Replace pomoc05.11.2009. u 23:11 - pre 175 meseci
Naravno da jeste.. Ono sto ti treba je sed i regular expressions (tj. jedan od nacina da se ovo uradi). Pogledaj ovde i ovde.
Konkretno, ako imas neki html fajl koji se zove test.html i njegov sadrzaj je
Code:

<html>
<head></head>
<body>
<p>ovo je neki tekst</p>
<p>ovo je drugi paragraf</p>
<a href="http://www.nekidomen.com/index.php?action=121">nesto</a>
<p>ovo je treci <a href="http://www.nekidomen.com/asddsa.sdhs">nesto drugo</a></p>
</body>
</html>

onda ce ova komanda odraditi to sto hoces i snimiti rezultat u fajl sredjeno.html (u bash-u):
Code:

sed 's-\"http:.*\"-\"http://www\.mojdomen\.com/index\.html\"-g' test.html > sredjeno.html

Ovo pod uslovom da pozivas komandu iz foldera gde ti se nalazi fajl test.html.
Ovde sam koristio minus kao znak koji razdvaja delove komande zato sto se slash javlja u html adresi kojom hoces da zamenis originalnu.. Isto tako, obrati paznju na backslash koji sluzi kao escape character..
Sve sto dalje treba da uradis je da napravis jednostavan shell-script koji ce ovo (naravno prilagodjeno) da protera kroz sve foldere gde ti se nalaze fajlovi koje treba da sredis (pogledaj ovde)
I da, ovo ce da zameni SVAKI string koji pocinje sa "http: i zavrsava se sa ". Mozda bi bilo pravilnije ubaciti i <a href, ali to ostavljam tebi..
Srecno!

PS. Sada sam skontao da nisam skroz odgovorio.. za izmenu samo stringova koji pocinju sa http://www.nekidomen.com bi koristio ovo:
Code:

sed 's-\"http://www\.nekidomen\.com.*\"-\"http://www\.mojdomen\.com/index\.html\"-g' test.html > sredjeno.html
 
Odgovor na temu

[es] :: Linux :: Search Replace pomoc

[ Pregleda: 1606 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.