sed
potreboval by som sa poradiť.
ako je možné dosiahnuť to aby pomocou jedného príkazu sed som zamenil viacero reťazcov, ktoré sa nachádzajú v premennej.
je mi jasné, že keď chcem vymeniť viacej reťazcov tak použijem niečo takého sed -e 's/slovo1/slovo2/g ; s/slovo3/slovo4/g'
ale keď si predstavím, že tých slov je cca 1000 a môžu sa meniť, tak je to nereálny spôsob.
Existuje nejaký taký spôsob akým to docieliť? aj za použitia iných nástrojov?
Mňa napadlo to že, cez nejaký cyklus budem načítavať tie slová ktoré chcem vymeniť a po jednom ich vymieňať.
Ďakujem.
Pre pridávanie komentárov sa musíte prihlásiť.
čiže keď sa v slovníku nachádza slovo: ahoj.
tak za použitia sed: sed '/s/$slovo/< $slovo >/g'
dostanem vo výstupnom súbore označené: < ahoj >.
Len tých slov v slovníku môže byť aj okolo stoviek.
./skript.sh pokus.txt
(za predpokladu ze v akt. adresari je slovnik kde na riadkoch su slova)
nakoniec som zistil lepší spôsob:
cat Slovnik | xargs -I {} sed -i 's/\b{}\b/<{}>/g' Vstup && cat Vstup
tralala <ahoj> ahojky ako sa mas <janci>? <lol>! ty lolo.
v slovniku je:
ahoj
janci
lol
ide to s ním rýchlejšie, ale ďakujem za odpoveď