ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] How to join lines with separator ?
@ 2007-02-06 14:33 Vitaly Ostanin
  2007-02-06 16:42 ` Andrey S. Rybak
  2007-02-06 18:39 ` Grigory Batalov
  0 siblings, 2 replies; 8+ messages in thread
From: Vitaly Ostanin @ 2007-02-06 14:33 UTC (permalink / raw)
  To: ALT Linux Community

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

Здравствуйте.

В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
родное средство в UNIX для объединения строк в одну, с
разделением запятыми?

Пытался делать:
cat file | tr '\n' ','
пустой вывод. Да и последняя запятая не нужна.

Можно сделать через
while read s; do echo -n $s; echo -n ','
, но тоже последняя запятая лишняя, да и коряво как-то.

-- 
Regards, Vyt
mailto:  vyt@vzljot.ru
JID:     vyt@vzljot.ru


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

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

* Re: [Comm] How to join lines with separator ?
  2007-02-06 16:42 ` Andrey S. Rybak
@ 2007-02-06 14:55   ` Vitaly Ostanin
  2007-02-06 17:03     ` Michael Shigorin
  0 siblings, 1 reply; 8+ messages in thread
From: Vitaly Ostanin @ 2007-02-06 14:55 UTC (permalink / raw)
  To: ALT Linux Community

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

Andrey S. Rybak wrote:
> Vitaly Ostanin wrote:
>> Здравствуйте.
>>
>> В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
>> родное средство в UNIX для объединения строк в одну, с
>> разделением запятыми?
>>
>> Пытался делать:
>> cat file | tr '\n' ','
>> пустой вывод. Да и последняя запятая не нужна.
> 
> где-то в другом месте клин. у меня работает такая конструкция

Действительно. На рабочем компе работает:

2.6.18-wks-smp-alt1
coreutils-5.97-alt1
glibc-2.5-alt4

На сервере не работает:

2.6.12-vs26-smp-alt3
coreutils-5.3.0-alt1
glibc-2.3.5-alt7

<skipped/>

-- 
Regards, Vyt
mailto:  vyt@vzljot.ru
JID:     vyt@vzljot.ru


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

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

* Re: [Comm] How to join lines with separator ?
  2007-02-06 14:33 [Comm] How to join lines with separator ? Vitaly Ostanin
@ 2007-02-06 16:42 ` Andrey S. Rybak
  2007-02-06 14:55   ` Vitaly Ostanin
  2007-02-06 18:39 ` Grigory Batalov
  1 sibling, 1 reply; 8+ messages in thread
From: Andrey S. Rybak @ 2007-02-06 16:42 UTC (permalink / raw)
  To: ALT Linux Community

Vitaly Ostanin wrote:
> Здравствуйте.
>
> В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
> родное средство в UNIX для объединения строк в одну, с
> разделением запятыми?
>
> Пытался делать:
> cat file | tr '\n' ','
> пустой вывод. Да и последняя запятая не нужна.
>
>   

где-то в другом месте клин. у меня работает такая конструкция


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

* Re: [Comm] How to join lines with separator ?
  2007-02-06 14:55   ` Vitaly Ostanin
@ 2007-02-06 17:03     ` Michael Shigorin
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Shigorin @ 2007-02-06 17:03 UTC (permalink / raw)
  To: ALT Linux Community

On Tue, Feb 06, 2007 at 05:55:33PM +0300, Vitaly Ostanin wrote:
> >> В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
> >> родное средство в UNIX для объединения строк в одну, с
> >> разделением запятыми?
> >> Пытался делать: cat file | tr '\n' ','
> >> пустой вывод. Да и последняя запятая не нужна.
> > где-то в другом месте клин. у меня работает такая конструкция
> Действительно. На рабочем компе работает: coreutils-5.97-alt1
> На сервере не работает: coreutils-5.3.0-alt1

Явно дело в старых coreutils.  Почитай про sed с ключиком /m
(multiline), пример вроде бы был в sed1line.txt из его
документации.

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


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

* Re: [Comm] How to join lines with separator ?
  2007-02-06 14:33 [Comm] How to join lines with separator ? Vitaly Ostanin
  2007-02-06 16:42 ` Andrey S. Rybak
@ 2007-02-06 18:39 ` Grigory Batalov
  2007-02-07  9:22   ` Vitaly Ostanin
  2007-02-07  9:48   ` [Comm] zsh (was: How to join lines with separator ?) Vitaly Ostanin
  1 sibling, 2 replies; 8+ messages in thread
From: Grigory Batalov @ 2007-02-06 18:39 UTC (permalink / raw)
  To: community

On Tue, 06 Feb 2007 17:33:20 +0300, Vitaly Ostanin wrote:

> В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
> родное средство в UNIX для объединения строк в одну, с
> разделением запятыми?
> 
> Пытался делать:
> cat file | tr '\n' ','
> пустой вывод. Да и последняя запятая не нужна.
> 
> Можно сделать через
> while read s; do echo -n $s; echo -n ','
> , но тоже последняя запятая лишняя, да и коряво как-то.

cat file | awk '{ if (list != "") list = list ", "  $0; else list = $0 } END { print list }'

-- 
 Grigory Batalov,
 ALT Linux Team



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

* Re: [Comm] How to join lines with separator ?
  2007-02-06 18:39 ` Grigory Batalov
@ 2007-02-07  9:22   ` Vitaly Ostanin
  2007-02-07  9:48   ` [Comm] zsh (was: How to join lines with separator ?) Vitaly Ostanin
  1 sibling, 0 replies; 8+ messages in thread
From: Vitaly Ostanin @ 2007-02-07  9:22 UTC (permalink / raw)
  To: ALT Linux Community

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

Grigory Batalov wrote:
> On Tue, 06 Feb 2007 17:33:20 +0300, Vitaly Ostanin wrote:
> 
>> В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
>> родное средство в UNIX для объединения строк в одну, с
>> разделением запятыми?
>>
>> Пытался делать:
>> cat file | tr '\n' ','
>> пустой вывод. Да и последняя запятая не нужна.
>>
>> Можно сделать через
>> while read s; do echo -n $s; echo -n ','
>> , но тоже последняя запятая лишняя, да и коряво как-то.
> 
> cat file | awk '{ if (list != "") list = list ", "  $0; else list = $0 } END { print list }'

Красота, спасибо!

И всё же интересно, почему tr на сервере не работает.

-- 
Regards, Vyt
mailto:  vyt@vzljot.ru
JID:     vyt@vzljot.ru


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

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

* Re: [Comm] zsh (was: How to join lines with separator ?)
  2007-02-06 18:39 ` Grigory Batalov
  2007-02-07  9:22   ` Vitaly Ostanin
@ 2007-02-07  9:48   ` Vitaly Ostanin
  2007-02-07 10:17     ` Sergey Vlasov
  1 sibling, 1 reply; 8+ messages in thread
From: Vitaly Ostanin @ 2007-02-07  9:48 UTC (permalink / raw)
  To: ALT Linux Community

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

Grigory Batalov wrote:
> On Tue, 06 Feb 2007 17:33:20 +0300, Vitaly Ostanin wrote:
> 
>> В очередной раз ловлю клин. Скажите, пожалуйста, какое есть
>> родное средство в UNIX для объединения строк в одну, с
>> разделением запятыми?
>>
>> Пытался делать:
>> cat file | tr '\n' ','
>> пустой вывод. Да и последняя запятая не нужна.
>>
>> Можно сделать через
>> while read s; do echo -n $s; echo -n ','
>> , но тоже последняя запятая лишняя, да и коряво как-то.
> 
> cat file | awk '{ if (list != "") list = list ", "  $0; else list = $0 } END { print list }'

Оказалось, что дело в zsh - строка после вывода стирается, сразу
идёт приглашение командной строки. Может, это старый zsh так
обходится со строками, у которых нет EOL ?

В этой версии строка стирается:
zsh-4.2.5-alt2

В этих уже всё ок:
zsh-4.3.0-alt0.4
zsh-4.3.2-alt5

~/.zshrc могу показать, если кому интересно.

-- 
Regards, Vyt
mailto:  vyt@vzljot.ru
JID:     vyt@vzljot.ru


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

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

* Re: [Comm] zsh (was: How to join lines with separator ?)
  2007-02-07  9:48   ` [Comm] zsh (was: How to join lines with separator ?) Vitaly Ostanin
@ 2007-02-07 10:17     ` Sergey Vlasov
  0 siblings, 0 replies; 8+ messages in thread
From: Sergey Vlasov @ 2007-02-07 10:17 UTC (permalink / raw)
  To: ALT Linux Community

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

On Wed, Feb 07, 2007 at 12:48:22PM +0300, Vitaly Ostanin wrote:
> Оказалось, что дело в zsh - строка после вывода стирается, сразу
> идёт приглашение командной строки. Может, это старый zsh так
> обходится со строками, у которых нет EOL ?

Это действует setopt prompt_cr (включено по умолчанию).  Впрочем,
отключение этой опции приводит к проблемам при редактировании
командной строки, когда промпт после такого вывода без EOL находится
не в начале строки.

> В этой версии строка стирается:
> zsh-4.2.5-alt2
> 
> В этих уже всё ок:
> zsh-4.3.0-alt0.4
> zsh-4.3.2-alt5

А в этих версиях, помимо prompt_cr, есть опция prompt_sp, которая
позволяет сохранить подобную частичную строку, но иногда приводит к не
совсем приятным побочным эффектам:

 - мусор в терминале, если ввод команды начат раньше, чем zsh покажет
   промпт - для первой команды это можно обойти, если сначала
   установить no_prompt_sp, а затем вернуть prompt_sp в preexec();

 - мусор в командной строке в старых сборках mc (сейчас в Сизифе это
   уже исправлено).

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

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

end of thread, other threads:[~2007-02-07 10:17 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-06 14:33 [Comm] How to join lines with separator ? Vitaly Ostanin
2007-02-06 16:42 ` Andrey S. Rybak
2007-02-06 14:55   ` Vitaly Ostanin
2007-02-06 17:03     ` Michael Shigorin
2007-02-06 18:39 ` Grigory Batalov
2007-02-07  9:22   ` Vitaly Ostanin
2007-02-07  9:48   ` [Comm] zsh (was: How to join lines with separator ?) Vitaly Ostanin
2007-02-07 10:17     ` Sergey Vlasov

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