LINUX.ORG.RU

sed: замена определенных символов встречающихся до некоторого знака

 , , , ,


1

1

Подскажите регулярку пж:

# Надо из 
aaa-bbb-ccc=aaa-bbb-ccc
# получить
aaa_bbb_ccc=aaa-bbb-ccc
Уточнение: надо чтобы работало для произвольных строк и меняло '-' (и другие символы, недопустимые в именах переменных bash) на '_', но только перед знаком '='

★★★★☆

Последнее исправление: superuser (всего исправлений: 7)
Ответ на: комментарий от superuser

замени tr -d " " на tr -d " \t"

Тогда команды атакующего прилипнут к значениям параметров, так words в bash разделяются spaces, а spaces это строго пробел и таб.

Остаются приколы типа

a=b$(date)`whoami`

, так что апострофы и доллар надо тоже удалять

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от superuser
while read -r line; do
	left="$(echo -n "$line" |sed 's/=.*//' |sed 's/[-.&$]/_/g')"
	right="$(echo -n "$line" |sed 's/^[^=]*=//')"
	printf -v "$left" '%s' "$right"
done < <(
	echo 'foo-bar=hello-world; rm -fr /'
	echo 'foo-bar.baz=world.existence; $(date); `date`'
)
echo "$foo_bar"
echo "$foo_bar_baz"
kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 2)
Ответ на: комментарий от kaldeon

Надо поправить патчи для сборки с musl, которые я там удалил, т.к. собирал с glibc https://github.com/onlylunix/void-packages/tree/mesa-25.2
С версии 25.2.0 пересобирал эту месу, думал почему не работают x32-приложения на vulkan в x64 системе.
И вот вчера нашел!

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

А эти патчи править надо Iron_Bug звать, она умная и на musl версии сидит.
А может патчи то и не нужны уже...

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Надо просто собрать пакет, запускать наверно не обязательно
Самому мне лень патчи править, эхх....

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser

чтобы «просто собрать пакет» надо сначала собрать все прочие пакеты, от которых он зависит, включая, внезапно, компилятор нужной версии и вот это всё. и у месы там немало тяжёлых зависимостей. к тому же, у меня ещё отключен вяленый (вообще его нет) и некоторые другие вещи. так что я в правки месы для чужих сборок не полезу.

у void есть патчи месы, но я хз, как они там работают с тем, что я никогда не использовала. я вообще не особый пользователь продвинутой графики и её фишек. у меня даже невидия отключена физически, потому что для неё нет открытых дров.

кстати, а что мешает использовать старую версию, с которой всё работало?

и, как я уже сказала, поищите патчи у Alpine, если они втащили эти новые версии к себе. у них обычно хорошие патчи для musl. это если вдруг родных патчей Void недостаточно.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

Да там за 15 мин всё на i3-7100 собирается, если зависимости из репозитория подтягиваются

кстати, а что мешает использовать старую версию, с которой всё работало?

пытаюсь научится чему-то, не знаю чему...

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

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

Iron_Bug ★★★★★
()
4 января 2026 г.