Portál AbcLinuxu, 25. dubna 2024 10:28
sed -i~ -e 's/\(.*\$sql \?= \?".*\)demo_\(.*\)/\1".TABLE_PREFIX."\2/g' *
sed -i~ -e 's/\(.*\$sql \?= \?".*\)demo_\(.*\)/\1'"'"'.TABLE_PREFIX.'"'"'\2/g' *
Je to sice divný, ale bash to vezme - prostě na sebe napojím 2 řetězce a jeden je uzavřen v úvozovkách a druhý v apostrofech.
sed -i~ -e 's/\(.*\$sql \?= \?'"'"'.*\)demo_\(.*\)/\1'"'"'.TABLE_PREFIX.'"'"'\2/g' *
V tomhle aby se prase vyznalo :/
Ale funguje to . Ale vážně - nevypadalo to, že by se tohle řešení mělo nějak archivovat (myslím do skriptu nebo tak), takže (tolik) nevadí, že to je nečitelné. Navíc, při ohraničení uvozovkami se zase musí kontrolovat shellovské wildcardy (tedy escapovat a zde se to začne míchat s tím sedovským) - takže je to IMHO prašť jak uhoď.
Enclosing characters in double quotes preserves the literal value of
all characters within the quotes, with the exception of $, ‘, \,
kde jsem tento znak ‘ povazoval za apostrof ' :/
sed -i~ -e "s/\(.*\$sql \?= \?\".*\)demo_\(.*\)/\1\".TABLE_PREFIX.\"\2/g" * sed -i~ -e "s/\(.*\$sql \?= \?'.*\)demo_\(.*\)/\1'.TABLE_PREFIX.'\2/g" *
sed -i~ -e 's/\(.*\$sql \?= \?".*\)demo_\(.*\)/\1".TABLE_PREFIX."\2/g' * sed -i~ -e "s/\(.*\$sql \?= \?'.*\)demo_\(.*\)/\1'.TABLE_PREFIX.'\2/g" *
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.