ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Как удалить пробелы
@ 2008-08-31 14:17 Kharitonov A. Dmitry
  2008-08-31 14:25 ` Michael Holzman
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Kharitonov A. Dmitry @ 2008-08-31 14:17 UTC (permalink / raw)
  To: community

Как удалить пробелы в начале строки?
Нужно для скрипта в bashe

Допустим
t="    123   123    "
а в результате получилось бы
"123   123    "


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 14:17 [Comm] Как удалить пробелы Kharitonov A. Dmitry
@ 2008-08-31 14:25 ` Michael Holzman
  2008-08-31 16:00   ` Yura Kalinichenko
  2008-08-31 16:33   ` Kharitonov A. Dmitry
  2008-08-31 18:21 ` Yuri Bushmelev
  2008-09-01  3:27 ` Gleb Kulikov
  2 siblings, 2 replies; 19+ messages in thread
From: Michael Holzman @ 2008-08-31 14:25 UTC (permalink / raw)
  To: ALT Linux Community general discussions

2008/8/31 Kharitonov A. Dmitry <kharpost@rambler.ru>:
> Как удалить пробелы в начале строки?
> Нужно для скрипта в bashe
>
> Допустим
> t="    123   123    "
> а в результате получилось бы
> "123   123    "
sed 's/^[ \t]*//'

Здесь (http://www-h.eng.cam.ac.uk/help/tpl/unix/sed.html) и другие примеры есть


-- 
Regards,
 Michael Holzman

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 14:25 ` Michael Holzman
@ 2008-08-31 16:00   ` Yura Kalinichenko
  2008-08-31 16:32     ` Kharitonov A. Dmitry
  2008-09-01 13:19     ` Yury Aliaev
  2008-08-31 16:33   ` Kharitonov A. Dmitry
  1 sibling, 2 replies; 19+ messages in thread
From: Yura Kalinichenko @ 2008-08-31 16:00 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Michael Holzman пишет:
> 2008/8/31 Kharitonov A. Dmitry <kharpost@rambler.ru>:
>   
>> Как удалить пробелы в начале строки?
>> Нужно для скрипта в bashe
>>
>> Допустим
>> t="    123   123    "
>> а в результате получилось бы
>> "123   123    "
>>     
> sed 's/^[ \t]*//'
>   
Более кошерный вариант:

sed -e 's[[:space:]]*//g'

-- 
SY, 
   Yura Kalinichenko



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 16:00   ` Yura Kalinichenko
@ 2008-08-31 16:32     ` Kharitonov A. Dmitry
  2008-09-01 13:19     ` Yury Aliaev
  1 sibling, 0 replies; 19+ messages in thread
From: Kharitonov A. Dmitry @ 2008-08-31 16:32 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Yura Kalinichenko пишет:
> Michael Holzman пишет:
>> 2008/8/31 Kharitonov A. Dmitry <kharpost@rambler.ru>:
>>  
>>> Как удалить пробелы в начале строки?
>>> Нужно для скрипта в bashe
>>>
>>> Допустим
>>> t="    123   123    "
>>> а в результате получилось бы
>>> "123   123    "
>>>     
>> sed 's/^[ \t]*//'
>>   
> Более кошерный вариант:
>
> sed -e 's[[:space:]]*//g'
>
Спасибо, я применю

sed 's/^[[:space:]]\+//g;'
А нельзя ли это сделать с помощью подстановок? (bash)




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 14:25 ` Michael Holzman
  2008-08-31 16:00   ` Yura Kalinichenko
@ 2008-08-31 16:33   ` Kharitonov A. Dmitry
  2008-09-01 14:15     ` Slava Dubrovskiy
  1 sibling, 1 reply; 19+ messages in thread
From: Kharitonov A. Dmitry @ 2008-08-31 16:33 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Michael Holzman пишет:
> 2008/8/31 Kharitonov A. Dmitry <kharpost@rambler.ru>:
>   
>> Как удалить пробелы в начале строки?
>> Нужно для скрипта в bashe
>>
>> Допустим
>> t="    123   123    "
>> а в результате получилось бы
>> "123   123    "
>>     
> sed 's/^[ \t]*//'
>
> Здесь (http://www-h.eng.cam.ac.uk/help/tpl/unix/sed.html) и другие примеры есть
>
>
>   
Спасибо! классная статейка, читал с удовольствием


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 14:17 [Comm] Как удалить пробелы Kharitonov A. Dmitry
  2008-08-31 14:25 ` Michael Holzman
@ 2008-08-31 18:21 ` Yuri Bushmelev
  2008-09-01 20:10   ` Michael Shigorin
  2008-09-01  3:27 ` Gleb Kulikov
  2 siblings, 1 reply; 19+ messages in thread
From: Yuri Bushmelev @ 2008-08-31 18:21 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от Воскресенье 31 августа 2008 Kharitonov A. Dmitry написал(a):
> Как удалить пробелы в начале строки?
> Нужно для скрипта в bashe
>
> Допустим
> t="    123   123    "
> а в результате получилось бы
> "123   123    "

a="   123  "; b=${a##+( )}; echo "'$b'"
'123  '

Будет работать в bash. Для других шеллов не обещаю..

-- 
С уважением,
Бушмелев Юрий

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 14:17 [Comm] Как удалить пробелы Kharitonov A. Dmitry
  2008-08-31 14:25 ` Michael Holzman
  2008-08-31 18:21 ` Yuri Bushmelev
@ 2008-09-01  3:27 ` Gleb Kulikov
  2008-09-01  3:53   ` Kharitonov A. Dmitry
  2 siblings, 1 reply; 19+ messages in thread
From: Gleb Kulikov @ 2008-09-01  3:27 UTC (permalink / raw)
  To: ALT Linux Community general discussions

In message [Воскресенье 31 августа 2008] from Kharitonov A. Dmitry was 
written:
> Как удалить пробелы в начале строки?
> Нужно для скрипта в bashe
>
> Допустим
> t="    123   123    "
> а в результате получилось бы
> "123   123    "

а может, без баша?
типа, t.lstrip() ? 

просто не понимаю, так ли уж надо всё писать на баше, получая длинные, 
плохочитабельные скрипты. К тому же дольше выполняющиеся, из-за частого 
обращения ко всяким sed/awk.

-- 
      Салют, /GLeb

UIN: 15341920
jabber://gleb@asd.iao.ru
sip://2387245@sipnet.ru			(telephony)
skype://gleb_kulikov.tomsk		(telephony)
sip://20000204@sip.pctel.ru		(telephony)
netmail: 2:5005/78

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  3:27 ` Gleb Kulikov
@ 2008-09-01  3:53   ` Kharitonov A. Dmitry
  2008-09-01  4:01     ` Denis Nazarov
  2008-09-01  4:40     ` Gleb Kulikov
  0 siblings, 2 replies; 19+ messages in thread
From: Kharitonov A. Dmitry @ 2008-09-01  3:53 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Gleb Kulikov пишет:
> In message [Воскресенье 31 августа 2008] from Kharitonov A. Dmitry was 
> written:
>   
>> Как удалить пробелы в начале строки?
>> Нужно для скрипта в bashe
>>
>> Допустим
>> t="    123   123    "
>> а в результате получилось бы
>> "123   123    "
>>     
>
> а может, без баша?
> типа, t.lstrip() ? 
>
> просто не понимаю, так ли уж надо всё писать на баше, получая длинные, 
> плохочитабельные скрипты. К тому же дольше выполняющиеся, из-за частого 
> обращения ко всяким sed/awk.
>
>   
Мне это нужно сделать для разбора конфигурационного файла в стартовом 
скрипте. На чем вы предложите написать?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  3:53   ` Kharitonov A. Dmitry
@ 2008-09-01  4:01     ` Denis Nazarov
  2008-09-01 17:48       ` Kharitonov A. Dmitry
  2008-09-01  4:40     ` Gleb Kulikov
  1 sibling, 1 reply; 19+ messages in thread
From: Denis Nazarov @ 2008-09-01  4:01 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от Monday 01 September 2008 09:53:00 Kharitonov A. Dmitry написал(а):
> На чем вы предложите написать?

да хотя бы на перле :)


#!/usr/bin/perl

my $str="   123   123  ";
print "$str\n"; # получаем "   123   123  "
$str =~ s/^( )*//ig;
print "$str\n";  #  получаем "123   123  "

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  3:53   ` Kharitonov A. Dmitry
  2008-09-01  4:01     ` Denis Nazarov
@ 2008-09-01  4:40     ` Gleb Kulikov
  2008-09-01  4:52       ` Denis Nazarov
  2008-09-01 11:27       ` Yuri Bushmelev
  1 sibling, 2 replies; 19+ messages in thread
From: Gleb Kulikov @ 2008-09-01  4:40 UTC (permalink / raw)
  To: ALT Linux Community general discussions

In message [Понедельник 01 сентября 2008] from Kharitonov A. Dmitry was 
written:

> Мне это нужно сделать для разбора конфигурационного файла в стартовом
> скрипте. На чем вы предложите написать?

я предлагаю и пишу на питоне. ничего дурного, в этом не вижу.


-- 
      Салют, /GLeb

UIN: 15341920
jabber://gleb@asd.iao.ru
sip://2387245@sipnet.ru			(telephony)
skype://gleb_kulikov.tomsk		(telephony)
sip://20000204@sip.pctel.ru		(telephony)
netmail: 2:5005/78

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  4:40     ` Gleb Kulikov
@ 2008-09-01  4:52       ` Denis Nazarov
  2008-09-01  4:56         ` Andrey Rahmatullin
  2008-09-01 11:27       ` Yuri Bushmelev
  1 sibling, 1 reply; 19+ messages in thread
From: Denis Nazarov @ 2008-09-01  4:52 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от Monday 01 September 2008 10:40:58 Gleb Kulikov написал(а):
> я предлагаю и пишу на питоне. ничего дурного, в этом не вижу.

я тоже не против питона, вот только с регулярными выражениями еще
не до конца разобрался. Можно пример по сабжу в студию?

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  4:52       ` Denis Nazarov
@ 2008-09-01  4:56         ` Andrey Rahmatullin
  0 siblings, 0 replies; 19+ messages in thread
From: Andrey Rahmatullin @ 2008-09-01  4:56 UTC (permalink / raw)
  To: community

On Mon, Sep 01, 2008 at 10:52:52AM +0600, Denis Nazarov wrote:
> я тоже не против питона, вот только с регулярными выражениями еще
> не до конца разобрался. Можно пример по сабжу в студию?
Питон не из тех языков, где для ltrim надо городить регекс.
А вообще
http://diveintopython.org/regular_expressions/index.html
http://docs.python.org/lib/module-re.html


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  4:40     ` Gleb Kulikov
  2008-09-01  4:52       ` Denis Nazarov
@ 2008-09-01 11:27       ` Yuri Bushmelev
  2008-09-01 11:40         ` Mikhail Gusarov
  1 sibling, 1 reply; 19+ messages in thread
From: Yuri Bushmelev @ 2008-09-01 11:27 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от Понедельник 01 сентября 2008 Gleb Kulikov написал(a):
> In message [Понедельник 01 сентября 2008] from Kharitonov A. Dmitry was
>
> written:
> > Мне это нужно сделать для разбора конфигурационного файла в стартовом
> > скрипте. На чем вы предложите написать?
>
> я предлагаю и пишу на питоне. ничего дурного, в этом не вижу.

Стартовый скрипт - это что-то из /etc/init.d?
Я бы не рекомендовал там использовать что-то, не входящее в LSB, если это 
потенциально может выползти хоть куда-то еще, либо если это придется 
поддерживать еще кому-то, кроме вас (и после вас)...

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

-- 
С уважением,
Бушмелев Юрий

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01 11:27       ` Yuri Bushmelev
@ 2008-09-01 11:40         ` Mikhail Gusarov
  0 siblings, 0 replies; 19+ messages in thread
From: Mikhail Gusarov @ 2008-09-01 11:40 UTC (permalink / raw)
  To: ALT Linux Community general discussions

[-- Attachment #1: Type: text/plain, Size: 1180 bytes --]

Twas brillig at 15:27:54 01.09.2008 UTC+04 when jay4mail@gmail.com did gyre and gimble:

 >> я предлагаю и пишу на питоне. ничего дурного, в этом не вижу.
 YB> Стартовый скрипт - это что-то из /etc/init.d?

 YB> Я бы не рекомендовал там использовать что-то, не входящее в LSB,

http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Languages/LSB-Languages/python.html

 YB> если это потенциально может выползти хоть куда-то еще, либо если
 YB> это придется поддерживать еще кому-то, кроме вас (и после вас)...

Всё равно переносимость LSB - миф.

 YB> Если это нечто сугубо внутреннее в пределах организации, то
 YB> обязательно документировать необходимость установки
 YB> питона/перла/etc. Сэкономите себе и другим потом кучу времени.

Requires отменили?

-- 

[-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 16:00   ` Yura Kalinichenko
  2008-08-31 16:32     ` Kharitonov A. Dmitry
@ 2008-09-01 13:19     ` Yury Aliaev
  1 sibling, 0 replies; 19+ messages in thread
From: Yury Aliaev @ 2008-09-01 13:19 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Yura Kalinichenko scripsit:

>>
>>> Как удалить пробелы в начале строки?
>>> Нужно для скрипта в bashe
>>>
>>> Допустим
>>> t="    123   123    "
>>> а в результате получилось бы
>>> "123   123    "
>>>     
>>
>> sed 's/^[ \t]*//'
>>   
> 
> Более кошерный вариант:
> 
> sed -e 's[[:space:]]*//g'
> 

Всё-таки sed -e 's^[[:space:]]*//g' (добавлена галочка в начале). Иначе 
он вообще все пробулы выкусит...


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 16:33   ` Kharitonov A. Dmitry
@ 2008-09-01 14:15     ` Slava Dubrovskiy
  0 siblings, 0 replies; 19+ messages in thread
From: Slava Dubrovskiy @ 2008-09-01 14:15 UTC (permalink / raw)
  To: ALT Linux Community general discussions

[-- Attachment #1: Type: text/plain, Size: 341 bytes --]

Kharitonov A. Dmitry пишет:
>> Здесь (http://www-h.eng.cam.ac.uk/help/tpl/unix/sed.html) и другие 
>> примеры есть   
> Спасибо! классная статейка, читал с удовольствием
в догонку:
http://www.opennet.ru/base/dev/sed1line.txt.html

-- 
WBR,
Dubrovskiy Vyacheslav


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 3262 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01  4:01     ` Denis Nazarov
@ 2008-09-01 17:48       ` Kharitonov A. Dmitry
  2008-09-02  2:46         ` Gleb Kulikov
  0 siblings, 1 reply; 19+ messages in thread
From: Kharitonov A. Dmitry @ 2008-09-01 17:48 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Denis Nazarov пишет:
> В сообщении от Monday 01 September 2008 09:53:00 Kharitonov A. Dmitry написал(а):
>   
>> На чем вы предложите написать?
>>     
>
> да хотя бы на перле :)
>
>
> #!/usr/bin/perl
>
> my $str="   123   123  ";
> print "$str\n"; # получаем "   123   123  "
> $str =~ s/^( )*//ig;
> print "$str\n";  #  получаем "123   123  "
>   
я чего-то никакой разницы с bashем не увидел. А если учесть, что читать 
строчки нужно из файла, то sed однозначно рулит.
А теперь представьте, что этот скрипт нужно встроить в модем, и туда ещё 
перл из-за этого грузить придётся.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-08-31 18:21 ` Yuri Bushmelev
@ 2008-09-01 20:10   ` Michael Shigorin
  0 siblings, 0 replies; 19+ messages in thread
From: Michael Shigorin @ 2008-09-01 20:10 UTC (permalink / raw)
  To: ALT Linux Community general discussions

On Sun, Aug 31, 2008 at 10:21:19PM +0400, Yuri Bushmelev wrote:
> > Как удалить пробелы в начале строки?
> > Нужно для скрипта в bashe

Бишь #!/bin/bash в начале.

> > Допустим
> > t="    123   123    "
> > а в результате получилось бы
> > "123   123    "
> 
> a="   123  "; b=${a##+( )}; echo "'$b'"
> '123  '
> 
> Будет работать в bash. Для других шеллов не обещаю..

Причём если включить extglob:

shopt -s extglob

См. pathname expansion в bash(1).

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Comm] Как удалить пробелы
  2008-09-01 17:48       ` Kharitonov A. Dmitry
@ 2008-09-02  2:46         ` Gleb Kulikov
  0 siblings, 0 replies; 19+ messages in thread
From: Gleb Kulikov @ 2008-09-02  2:46 UTC (permalink / raw)
  To: ALT Linux Community general discussions

In message [Вторник 02 сентября 2008] from Kharitonov A. Dmitry was written:

> > my $str="   123   123  ";
> > print "$str\n"; # получаем "   123   123  "
> > $str =~ s/^( )*//ig;
> > print "$str\n";  #  получаем "123   123  "
>
> я чего-то никакой разницы с bashем не увидел. А если учесть, что читать

1. питон:

t = "  123 123     "
t.strip()
t.lstrip()
t.rstrip()
ну и регекспы, если хочется.

2. не видел ни одного дистрибутива. в котором питон не был бы установлен по 
умолчанию, разве что в паталогически минималистичных.

> А теперь представьте, что этот скрипт нужно встроить в модем, и туда ещё
> перл из-за этого грузить придётся.

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

> строчки нужно из файла, то sed однозначно рулит.

4. 
for line in file:
    line = line.strip().split()
    for element in line:
        # --- прочий парсинг

-- 
      Салют, /GLeb

UIN: 15341920
jabber://gleb@asd.iao.ru
sip://2387245@sipnet.ru			(telephony)
skype://gleb_kulikov.tomsk		(telephony)
sip://20000204@sip.pctel.ru		(telephony)
netmail: 2:5005/78

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2008-09-02  2:46 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-31 14:17 [Comm] Как удалить пробелы Kharitonov A. Dmitry
2008-08-31 14:25 ` Michael Holzman
2008-08-31 16:00   ` Yura Kalinichenko
2008-08-31 16:32     ` Kharitonov A. Dmitry
2008-09-01 13:19     ` Yury Aliaev
2008-08-31 16:33   ` Kharitonov A. Dmitry
2008-09-01 14:15     ` Slava Dubrovskiy
2008-08-31 18:21 ` Yuri Bushmelev
2008-09-01 20:10   ` Michael Shigorin
2008-09-01  3:27 ` Gleb Kulikov
2008-09-01  3:53   ` Kharitonov A. Dmitry
2008-09-01  4:01     ` Denis Nazarov
2008-09-01 17:48       ` Kharitonov A. Dmitry
2008-09-02  2:46         ` Gleb Kulikov
2008-09-01  4:40     ` Gleb Kulikov
2008-09-01  4:52       ` Denis Nazarov
2008-09-01  4:56         ` Andrey Rahmatullin
2008-09-01 11:27       ` Yuri Bushmelev
2008-09-01 11:40         ` Mikhail Gusarov

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git