URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10113
[ Назад ]

Исходное сообщение
"Bash vs Dash - подстановка управляющих символов"

Отправлено AlAdin , 14-Авг-16 07:20 
Надо найти в файле первую пустую строку (получить смещение байта). Файл является частью HTML-формы и пустая строка, кроме \n содержит ещё и \r. В общем, надо найти строку типа '^\r$'.

В bash-е команда
grep -bxm1 $'\r'
работает как ожидается.

В dash-е пишу
grep -bxm1 '\r'
ошибок не выдаёт, но и результата нет. Хотя если искать какой-то "реальный символ", то выдаёт предсказуемое значение.

Как подставить управляющий символ?

Спасибо


Содержание

Сообщения в этом обсуждении
"Bash vs Dash - подстановка управляющих символов"
Отправлено XAnder , 14-Авг-16 15:24 
Например:


CR=`printf '\r'`
grep -bxm1 "$CR"


"Bash vs Dash - подстановка управляющих символов"
Отправлено AlAdin , 15-Авг-16 04:14 
Спасибо, работает.

Но как объяснить "неподставляемость" в Dash \r?


"Bash vs Dash - подстановка управляющих символов"
Отправлено XAnder , 15-Авг-16 08:38 
> Но как объяснить "неподставляемость" в Dash \r?

Оно и не должно подставляться. Наоборот, $'\r' — это башевское расширение, без «$» и в баше будет «неподставляемость». Комбинации \<буква> в норме работают только с командами echo и printf. Ну у echo там свои тараканы, так что я использовал printf.

Рекомендую сравнить, как всё это описано в man bash и man dash.


"Bash vs Dash - подстановка управляющих символов"
Отправлено AlAdin , 16-Авг-16 01:13 
Спасибо. Попробую почитать.

Где б ещё перевод man dash посмотреть? А то язык Шекспира нашего нихтфирштейн :)