Portál AbcLinuxu, 7. května 2024 17:16


Dotaz: Prepsani textu v souborech v bashi

6.3.2005 23:11 Doktor
Prepsani textu v souborech v bashi
Přečteno: 94×
Odpovědět | Admin
Rad bych se zeptal jak by mohl vypadat prikaz v bashi na nasledujici situaci:

v adresari /data/ jsou ruzne podadresare a v kazdem stovky souboru ktere obsahuji urcitou URL, a ja bych potreboval hromadne tuto URL nahradit za jinou ve vsech souborech ve vsech adresarich najednou.

Za pripadnou odpoved predem dekuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.3.2005 23:17 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
find /data -type -f -print0 | xargs -0 sed -i 's|staré_url|nové_url|g'
přičemž staré_url je samozřejmě regulární výraz.
6.3.2005 23:19 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
přičemž staré_url je samozřejmě regulární výraz.
Oops :-)
7.3.2005 09:48 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
co to -f? No nic, i mistr tesař si občas utne ;-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
7.3.2005 11:31 Yeti
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Zklamal jsi mě -- čekal jsem od tebe řešení v bashi, tj. bez findu a sedu, ne ironické poznámky ;-)
7.3.2005 12:10 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
To znělo jako výzva. Už jsem se do toho pustil, ale narazil jsem na nějaké problémy s \ na konci řádku. Když to nemůže být dokonalé, tak se mi do toho nechce. Taky mi to žere mezery na začátku řádků a vůbec.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
7.3.2005 13:42 Semo
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Nie je xargs zbytocne? nestaci optiino -exec ?

A upozornenie, vyzaduje to sed >= 4.0 (ale to je dnes uz obvykla verzia)
7.3.2005 14:17 Yeti
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Naopak: -exec je zbytečný, stačí-li xargs. Proč spouštět stovky sedů, když stačí jeden?
6.3.2005 23:18 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
find -type f -name '*.html' | xargs sed -i 's|"http://xy.cz/stare-url/"|"http://xy.cz/nove-url/"|g'
se starším sedem by se musel použít tmp soubor.
7.3.2005 14:57 Doktor
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Ano funguje to perfektne...

jen jsem jeste pozapomnel ze po nalezeni url to ma nahradit celou radku ne jen tu url za url.. ale celou radku kde byla puvodni hledana url za pouze novou url.
7.3.2005 15:05 Yeti
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
To je snad jedno... Přidáš na začátek i na konec regulárního výrazu .*.
7.3.2005 15:35 Doktor
Rozbalit Rozbalit vše Re: Prepsani textu v souborech v bashi
Neuveritelny ale funguje to !!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.