ворос атцам sed'a
serd:~$ echo 'href="aaa?bbb&ccc$ddd=eee.html"' | sed {'s/[?=&$]/_/g'}
href_"aaa_bbb_ccc_ddd_eee.html"
зы я не отец sed'а
и как-нить покороче
Тебе надо повторять твою подстановку, пока строка подходит под образец.
О последнем прочитаешь сам.
---
...Я работаю...
$ echo 'href="aaa?bbb&ccc$ddd=eee.html"' | sed {': start; s/\(href="[^?=&$]*\)[?=&$]\(.*\.html"\)/\1_\2/g; t start;'}
href="aaa_bbb_ccc_ddd_eee.html"
sed -e '{' -e ': start;' -e 's/\(href="[^?=&$]*\)[?=&$]\(.*\.html"\)/\1_\2/g;' -e 't start;' -e '}'
---
...Я работаю...
и я еще не учел что он жадный
нужно так
sed {': start; s/\(href="[^"]*\)[?=&$]\([^"]*\.html"\)/\1_\2/; t start;'}
а «*?» твой сед не берёт?
это перловская фишка
Оставить комментарий
spensnp
почемуделает только одну замену, хотя указан параметр g?
как добиться чтобы он заменил все символы "?=&$" за один проход?