Portál AbcLinuxu, 15. června 2025 06:32


Dotaz: Najít a nahradit v souborech řetězec

15.11.2002 13:53 Zdeněk | skóre: 1
Najít a nahradit v souborech řetězec
Přečteno: 2349×
Odpovědět | Admin
Mám Mandrake 8.2 linux a přecházím na něj kompletně z windows. Programuji WWW stránky, ve windows jsem používal Homesite který umožňoval vybrat adresář s html nebo php soubory a najít v souborech určitý řetězec a nahradit ho jiným(funkce Extended Replace), představte si že máte 200 stránek html a v každé menu(jako tady pruh vlevo). Pokud bych chtěl změnit libovolný odkaz či do menu přidat další položku tak musím editovat všech 200 stránek-no pěkně děkuju :-( to zabere hodně času(než jsem na to přišel že to homesite umí párkrát jsem to musel takto udělat, hrůza!). Dělám WWW i na zakázku(většinou XHTML) a proto nemůžu donutit některé zákazníky že to udělám v php a použiju příkaz include pro vkládání toho menu porotože ne na každym serveru je php, iframe je taky na houby(netscape nepodporuje) ale tady se nejedná jen o menu, často je třeba něco vyhledat a změnit, potřebuju program co to umí, wine mi homesite nespustí, prosím napište mi adresu na stažení nějakého programu přímo pro linux nebo i pro windows, ale wine to musí umět spustit! Slyšel jsem o příkazu strings ale neznám parametry a je to příkazovej řádek a do něj mi nejde kopírovat ze schránky pomocí klipperu a opisovat nějakej dlooouhej kus html se mi nechce.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.11.2002 14:15 Ondra
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dobry den, osobne se domnivam, ze nastal cas, abyste se seznamil s pouzivanim regularnich vyrazu. Pokud byste se vrhl na regularni vyrazy skrze perlove skripty, doporucuji knihu RNDr. Satrapy - Perl pro zelenace. Tam je pouziti regularnich vyrazu popsano velmi pekne. Jinak samozrejme existuje nepreberne mnozstvi dalsich prostredku - schvalne zkuste zadat v comandline: apropos regular expression. S pozdravem Ondrej Poul
15.11.2002 14:41 Zdeněk | skóre: 1
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
to se mám kvůli tomuto učit perl? opravdu by to nešlo jednodušeji?
17.11.2002 21:51 david korcak
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
regularni vyrazy je moc dobra vec, ale jak mi jsou platne, pokud prikaz (sed) kterym chci provadet tyto zmeny neprijima seznam souboru (podobne jako zip -@)?? pokud jste natolik kovany v regularnich vyrazech, jak vyplyva z textu, moc by nas vsechny potesilo, pokud byste nam neco hodne jednoducheho ale konkretniho nastrelil. dekuji david korcak
18.11.2002 01:08 Tom K | skóre: 22
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
find /nejaka/cesta/ -type f -name *.html -exec sed -i "s/retez1/retez2/" '{}' ';' staci takovyhle priklad ?
echo -n "u48" | sha1sum | head -c3; echo
18.11.2002 09:13 Ondra
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Dobry den, chtel bych jen neco malo podotknout k nasledujicim radkum z predchozich prispevku: >to se mám kvůli tomuto učit perl? opravdu by to nešlo jednodušeji? Bojim se, ze uceni se na Linuxu asi nevyhnete. Pokud chcete neco umet, pak se to musite naucit, z nebe Vam to samo nespadne. Co se tyka Perlu, uvedl jsem ho proto, ze ho mam na skriptovani nejradeji, resp. pouzivam pouze Perl (skripty v shellu nebo v jinych jazycich neumim, protoze je nepotrebuji) prave pro jeho jednoduchost. >pokud jste natolik kovany v regularnich vyrazech, jak vyplyva z textu, moc by nas vsechny potesilo, pokud byste nam neco hodne jednoducheho ale konkretniho nastrelil Bohuzel, v regularnich vyrazech (a vlastne i v celem Perlu) jsem kovany jen s knihou RNDr. Satrapy v ruce, proto jsem ji zminoval. Takze, pokud to zvladnu ja, absolutni laik, zvladne to snad kazdy druhy, staci jen chtit a, jak to rikal soudruh Lenin? se ucit, se ucit, se ucit... S pozdravem Ondrej Poul
15.11.2002 16:13 kolisko | skóre: 21 | blog: prace
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Odpovědět | | Sbalit | Link | Blokovat | Admin
pomohl by ti i sed. To je divny, ze by to zadnej linuxovej editor neumel.... kolisko
15.11.2002 16:33 Roman Vasicek
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
No, jak jsem se tak dival, tak napriklad bluefish (http://bluefish.openoffice.nl/) ma moznost nahrazovat ve vsech otevrenych souborech, ale to je tak asi vse co jsem nasel. Funkcnost jsem vsak nezkousel...
19.11.2002 23:03 Mexiko | skóre: 25 | Chrudim
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
pouzivam bluefishe a podobne nahrady v pohode umi
20.11.2002 08:23 Roman Vasicek
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec

Mozna jen smalym rozdilem, ze ty soubory musi mit otevrene v editoru. V HomeSite lze rici zmen mi jeden text na druhy pro vsechny soubory v urcenem adresari a pripadne i podadresarich.

20.11.2002 12:19 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Jak uz tady nekdo psal, na to se ve svete unixu pouzivaji uplne jine paky. Napr jak bylo napsano to s tim find a sed. Ja osobne bych na to nasadil misto sedu ed (ex), coz je vlastne editor vi v rezimu : a prikaz bude 1,$s/orig_string/replace_sring/g Uc se chlapce moudrym byti ;-) Nebod: proc to delat jednoduse, kdyz to jde slozite.
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é.
16.11.2002 19:44 Pavel 'Goldenfish' Kysilka
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Odpovědět | | Sbalit | Link | Blokovat | Admin
zdravim,
vitejte v linuxovem svete.
neco by se naslo. pokud chcete graficky editor na tvorbu stranek zkusil bych jeste quantu(Quanta - viz freshmeat). ale nevim , co umi.
na root.cz resil nejake presmenovani souboru a cest p.Satrapa v clanku o regularnich vyrazech. neo vyslo na root.cz. myslim od p .brabce, mel na to svuj programek, myslim nazev sedfile.
jinak pokud chcete vice nez jenom prevest jmena u souboru tak man sed, grep,cut.a trocha regularich vyrazu. pripadne otevrit nejaky rozumny editor treba VIM nebo Emacs ci jiny.je to sice "cesta do pekel"ale zacnet delat uplne v jinych rozmerech a oproti na windows i mnohonasobnou efektivitou.
nevim jestli je emulace to prave.homesite neumi treba rozumne kodovani a na co emulaci pouzivat, kdyz v linuxu jsou podstatne lepsi nastroje.
jinak jsem php programator a doslova pisu celej portal ve VIM a v konsoli.neco samozrejme bez graikky nejde.a to, ze moji kolegove ve windows stravi mnoho casu jen editaci textu uz ani neresim.
%s/W[a-zA-Z ]*[0-9XP]\{2-4\}/Linux/g
zatim pavel kysilka
19.11.2002 07:24 Zdeněk | skóre: 1
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
sehnal jsem windousový program co to umí-Multi Find and Replace ale musím ho spouštět přes Wine, není možné ho nějak překompilovat pro linux?
20.11.2002 12:30 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Nesnazte se hledat ekvivalenty wokenich programu. Naucte se pouzivat to co uz mate k dispozici. Viz. info sekce textutils nebo gnuutils. To by jste mohl chtit program, ktery vam vypise seznam uzivatelu misto aby jste napsal jednoduse: cat /etc/passwd | cut -d ":" -l 1 nebo pokud to chcete na jednom radku oddelene stredniky: cat /etc/passwd | cut -d ":" -l 1 | tr "\n" ";" To je oc tu bezi.
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é.
20.11.2002 13:32 Zdeněk | skóre: 1
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
jenže jak mám do příkazového řádku kopírovat ten řetězec pomocí schránky(program klipper) když jen ten řetězec pořádně dlouhej??? nechce se mi to opisovat.
20.11.2002 14:13 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
A jde ho ulozit do souboru? Co tahle zkusit mysicku. Abych se priznal klipper neznam. K cemu je to dobre? V konzoli pouzivam standartni ovladac (ma to 3 pismenka a ted si nemuzu vzpomenout jaky, neco jako gmd, pmd, pdm ... ?) a v X taky uplne standartni mys. Pokud to nacpete do souboru, neni problem to upravit na skript ed (ex) a hodit to jako stdin pro ed (ex).
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é.
Stanislav Brabec avatar 20.11.2002 13:16 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Najít a nahradit v souborech řetězec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Viz Drobnosti ze shellového zápisníku II. na Rootu, kapitola Hromadné záměny textů a další podoné články.

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.