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

Исходное сообщение
"Как в bash-е удалить концевые пробелы?"

Отправлено WaprOld , 28-Май-04 03:25 
Как в bash-е удалить концевые пробелы?
Желательно не прибегая к вызову внешних программ и без использования циклов поиска непробела с конца строки (это тривиально, но медленно)
Сейчас я применяю такую конструкцию:
A="Чему-то там         "
A="${A//[ ][ ]}"
A="${A//%[ ]}"
Но эта штука удалит и двойной пробел внутри строки, а это совсем нехорошо, пусть уж лучше она его двойным и оставит, если не может на одинарный поменять.

Содержание

Сообщения в этом обсуждении
"Как в bash-е удалить концевые пробелы?"
Отправлено pth , 28-Май-04 05:34 
A=${A//%+( )/}

А зачем такие извраты именно в bash?


"Как в bash-е удалить концевые пробелы?"
Отправлено WaprOld , 28-Май-04 15:53 
>A=${A//%+( )/}
Не удаляет ничего %-(

>А зачем такие извраты именно в bash?

Чтобы не завязываться на другие программы. К тому-же если bash-а будет достаточно, зачем применять что-то более навороченное и тяжёлое?


"Как в bash-е удалить концевые пробелы?"
Отправлено pth , 28-Май-04 16:09 
> Не удаляет ничего %-(

Какая версия bash? Что говорит 'shopt extglob'?

Можно извернуться и так:

A=($A); A=${A[*]};

но лучше все это на perl :)


"Как в bash-е удалить концевые пробелы?"
Отправлено WaprOld , 28-Май-04 16:30 
>> Не удаляет ничего %-(
>
>Какая версия bash? Что говорит 'shopt extglob'?
GNU bash, version 2.05.0(1)-release (i386-slackware-linux-gnu)
Copyright 2000 Free Software Foundation, Inc.

extglob         off

>
>Можно извернуться и так:
>
>A=($A); A=${A[*]};
>
>но лучше все это на perl :)
Не хочу почему-то ;)


"Как в bash-е удалить концевые пробелы?"
Отправлено pth , 28-Май-04 16:32 
> extglob         off

Ну так 'shopt -s extglob'

> >но лучше все это на perl :)

> Не хочу почему-то ;)

Зря :)



"Как в bash-е удалить концевые пробелы?"
Отправлено WaprOld , 28-Май-04 16:40 
>> extglob         off
>
>Ну так 'shopt -s extglob'
Да, я уже сообразил ;)

Спасибо, всё нормально.