Portál AbcLinuxu, 12. května 2025 06:23

Dotaz: nahrada vice retezcu "najednou" v jednom souboru

12.4.2007 16:32 Honza
nahrada vice retezcu "najednou" v jednom souboru
Přečteno: 288×
Odpovědět | Admin
dobry den; mam textovy soubor soubor.txt a soubor zmen zmeny.txt, ve kterem je ve dvou sloupcich seznam zmen, ktere bych rad provedl v souboru soubor.txt, a to ve tvaru
puvodni1 novy1
puvodni2 novy2
...
(puvodniX i novyX jsou "obycejne" retezce bez mezer, pripadne tvaru {puvodniX} {novyx}. Je na to nejaky nastroj, ktery lze pouzit jako nastroj soubor.txt zmeny.txt? zkousel jsem neco jako
awk '{"perl -pibak -e \"s /$1/$2/g;\" soubor.txt;"}' zmeny.txt
coz nedela nic |zrejme neumim pouzit perl v awk :-| Pokud by to neco zjednodusilo, muze zmeny.txt vypadat treba jako
puvodni1
novy1
puvodni2
novy2
...
...
Diky! Honza
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.4.2007 16:37 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: nahrada vice retezcu "najednou" v jednom souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Najpr uprav zmeny.txt tak aby vzeral takto
s/puvodni1/novy1/g
s/puvodni2/novy2/g
a potom urob

sed -f zmeny.txt < soubor.txt > vystup.txt
12.4.2007 17:12 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: nahrada vice retezcu "najednou" v jednom souboru
Najpr uprav zmeny.txt tak aby vzeral takto
s/puvodni1/novy1/g
s/puvodni2/novy2/g
to se da udelat treba treba takhle:

cat zmeny.txt | awk '{print"s/"$1"/"$2"/g"}'
There is no point in being so cool in a cold world.
13.4.2007 21:12 honza
Rozbalit Rozbalit vše Re: nahrada vice retezcu "najednou" v jednom souboru
dekuju, funguje :-) H.

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.