LINUX.ORG.RU

sed и маска

 , ,


0

1

Нужно во всех ссылках заменить "?" на «%3F». Вот эта команда (стоит в цикле):

sed -i "s/href=\"*\?*\"/\href=\"*%3F*\"/g" ${file}
выдает ошибку
sed: -e выражение #1, символ 102: Неверное предшествующее регулярное выражение
Как сделать, чтобы работало?

★★★

Нужно во всех ссылках заменить "?" на «%3F». Вот эта команда (стоит в цикле):

неправильная команда.

$ echo '???<a href="http://?b?b?b?b?">???' | sed -r ':l;s/(href="[^"?]*)\?([^"]*")/\1%3F\2/;tl'
???<a href="http://%3Fb%3Fb%3Fb%3Fb%3F">???

учим матчасть... http://drbatty.ru/sed/index.html

drBatty ★★
()

в sed не «маски» а регэкспы

anonymous
()

Возможно вы под маской имеете ввиду glob (что, например, в командной строке).

Glob (де факто) - урезанный regexp: "?" <-> "." ; «*» <-> ".*" ; [...] - одинаково. (Но например первое не позволяет найти «aaaaaaa...»).

anonymous
()
Ответ на: комментарий от drBatty

Я как-то не разобрался, как это все с файлом сделать? cat и > не помогли, файлы просто очищались.

batekman ★★★
() автор топика
Ответ на: комментарий от batekman

Да какая разница, ssed или простой sed, если я ни тем, ни тем пользоваться как следует не умею...

учится никогда не поздно.

drBatty ★★
()
Ответ на: комментарий от drBatty

Работает. Просто со мной частенько бывает, что я что-то знаю, а о том, что это знание полезно для того случая, в котором я оказываюсь - не догадываюсь.

batekman ★★★
() автор топика
Ответ на: комментарий от drBatty

учится никогда не поздно.
учится

Это да :)

batekman ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.