Portál AbcLinuxu, 10. května 2025 01:06
val=""daňové prázdniny","úľava z dane""
a potrebujem tie uvodzovky vo vnutri val="..." nahradiť na ;quot; takto
val=";quot;daňové prázdniny;quot;,;quot;úľava z dane;quot;"
myslim,ze by to malo ist nejakym sedom, ale neviem akym.
Dakujem za kazdu radu
sed 's/"/;quot;/g' -------------------- ^ ^ ^ ^ | | | | nahrad | | | | | | uvozovky | | | | timhletim| | a cin tak dokud nedojdes na konec radku
sed 's/[^"]*""\([^"]*\)","\([^"]*\)""/val=";quot\1;quot,;quot\2;quot"/'
sed 's/"/;quot;/g;s/;quot;/"/;s/\(.*\);quot;/\1"/'
val="papier"
tak ho ten sed necha tak ako je, avsak ak je v subore
val=""nejaky" papier"
tak by sa z neho malo stat
val=";quot;nejaky;quot; papier"
Dufam,ze uz som to vysvetlil dostatocne a budete mi vediet pomoct.
Vdaka
perl -pe 'if(/(^.*?val=")(.*)(".*)/s){($a,$b,$c)=($1,$2,$3);$b=~s/"/;quot;/g;$_="$a$b$c"}' soubor.xmlReseni na sed by bylo mene elegantni, ale pokud potrebujete prave sed, tak dejte vedet.
perl -pe 'if(($a,$b,$c)=/(^.*?val=")(.*)(".*)/s){$b=~s/"/;quot;/g;$_="$a$b$c"}' soubor.xml
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.