LINUX.ORG.RU

Ответ на: комментарий от router

это уже pcre

Какой нафиг pcre? ERE же, sed _без -r_ непортабельно (ибо не BRE, --posix запретит) умеет \+.

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

Гнутый сед сам по себе (без --posix) непортабелен. Я как-то пытался объяснить одному маководу, почему BSD sed не может работать у него без горы костылей, и предложил два варианта – нормальный с GNU sed -r и более-менее универсальный с GNU sed без -r и горой слешей, в итоге он отринул и мои варианты, и других седобогов, и предпочёл воспользоваться простынёй пихтонолюба.

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

Гнутый сед сам по себе (без --posix) непортабелен. Я как-то пытался объяснить одному маководу,

дык маковод же.

gnu sed конечно непортабелен, но 95% фишек с --posix НЕ работают. Лучше уж питон тогда.

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

Не, ему сказали, что нужен гнутый, и он его вроде даже поставил. А вот насчёт как и откуда он его вызывал я не уверен, потому что он встраивал его в что-то вроде makefile в свою xcode.

Deleted
()
Последнее исправление: fargred (всего исправлений: 1)
Ответ на: комментарий от drBatty

неправильно.

Я имел в виду потенциальные проблемы с _ и нелатинскими буквами.

s/\B[0-9]*\B//g

То что у ТС pcre мимо увидел только сейчас.

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

Гнутый сед сам по себе (без --posix) непортабелен

Кто с этим спорит? Тезис был в том, что явное указание -r лучше, чем \+. Или по-вашему лучше писать /bin/sh в скрипте с башизмами?)

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

с _ и нелатинскими буквами

Для вас придумали [:alpha:], а вы лезете с \B, несоотвествующим условию.

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

блин, не потому неправильно. \B есть и работает в sed

$ echo "aaa123bbb" | sed 's/\B/!!/g'
a!!a!!a!!1!!2!!3!!b!!b!!b

Что ты им хотел добиться-то?

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

да, это верно. Пруф

$ echo "aaa123bbb z123 z123x ф666Ы БСЛ10" | sed -r 's/([[:alpha:]])([[:digit:]]+)([[:alpha:]])/\1\3/g'
aaabbb z123 zx фЫ БСЛ10
drBatty ★★
()
Ответ на: комментарий от Deleted

это не мне надо рассказывать, а тому кто обозвал это `word boundary`

ты не дочитал. Ну ничего, читай с начала и до конца:

`\w'
     Matches any "word" character.  A "word" character is any letter or
     digit or the underscore character.

`\W'
     Matches any "non-word" character.

`\b'
     Matches a word boundary; that is it matches if the character to
     the left is a "word" character and the character to the right is a
     "non-word" character, or vice-versa.

`\B'
     Matches everywhere but on a word boundary; that is it matches if
     the character to the left and the character to the right are
     either both "word" characters or both "non-word" characters.

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