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

Исходное сообщение
"сортировка в Perl или bash"

Отправлено Виталик , 07-Июн-12 16:10 
здравствуйте
скажите пожалуйста как изменить текст следующего вида:

aaa aaa aaa
bbb bbbbb bbbb bbbb
cccc cc cccc

dddd ddddd ddddd dddd
ee eeee eeeee eeee eeee

ff fffffff ffffff ff
gggg gggg ggggg
hh hhh hhhhhh hhhhhh

в следующий вид:
aaa aaa aaa bbb bbbbb bbbb bbbb cccc cc cccc
dddd ddddd ddddd dddd ee eeee eeeee eeee eeee
ff fffffff ffffff ff gggg gggg ggggg hh hhh hhhhhh hhhhhh

т.е. соединить в одну строчку все абзацы  

чем такое можно сделать?


Содержание

Сообщения в этом обсуждении
"сортировка в Perl или bash"
Отправлено Andrey Mitrofanov , 07-Июн-12 16:45 
>[оверквотинг удален]
> ee eeee eeeee eeee eeee
> ff fffffff ffffff ff
> gggg gggg ggggg
> hh hhh hhhhhh hhhhhh
> в следующий вид:
> aaa aaa aaa bbb bbbbb bbbb bbbb cccc cc cccc
> dddd ddddd ddddd dddd ee eeee eeeee eeee eeee
> ff fffffff ffffff ff gggg gggg ggggg hh hhh hhhhhh hhhhhh
> т.е. соединить в одну строчку все абзацы
> чем такое можно сделать?

$ tst |tr \\n \\!|sed 's/\([^!]\)!\([^!]\)/\1 \2/g;s/!!/!/g'|tr \\! \\n
aaa aaa aaa bbb bbbbb bbbb bbbb cccc cc cccc
dddd ddddd ddddd dddd ee eeee eeeee eeee eeee
ff fffffff ffffff ff gggg gggg ggggg hh hhh hhhhhh hhhhhh
$ tst |gawk 'BEGIN{RS="\
\
";FS="\
"}{gsub("\n"," ");print$0}'
aaa aaa aaa bbb bbbbb bbbb bbbb cccc cc cccc
dddd ddddd ddddd dddd ee eeee eeeee eeee eeee
ff fffffff ffffff ff gggg gggg ggggg hh hhh hhhhhh hhhhhh
$ tst |gawk 'BEGIN{RS="\n\n";FS="\n"}{gsub("\n"," ");print$0}'_

И на mawk-е тоже (почему-то...) работает.


"сортировка в Perl или bash"
Отправлено Виталик , 07-Июн-12 16:52 
>[оверквотинг удален]
> ff fffffff ffffff ff gggg gggg ggggg hh hhh hhhhhh hhhhhh
> $ tst |gawk 'BEGIN{RS="\
> \
> ";FS="\
> "}{gsub("\n"," ");print$0}'
> aaa aaa aaa bbb bbbbb bbbb bbbb cccc cc cccc
> dddd ddddd ddddd dddd ee eeee eeeee eeee eeee
> ff fffffff ffffff ff gggg gggg ggggg hh hhh hhhhhh hhhhhh
> $ tst |gawk 'BEGIN{RS="\n\n";FS="\n"}{gsub("\n"," ");print$0}'_
> И на mawk-е тоже (почему-то...) работает.

что за команда такая tct? во freebsd ее нет...
вообще есть фаил многомегабайтный такого текста ( т.е. там осмысленый текст, тут я просто пример привел) который нужно переработать
мне бы скрипт такого вида: тратата < text.txt > out.txt


"сортировка в Perl или bash"
Отправлено Andrey Mitrofanov , 07-Июн-12 19:21 
>> И на mawk-е тоже (почему-то...) работает.
> что за команда такая tct? во freebsd ее нет...

Такая команда есть только в этих наших линуксах.

  394  tst() { cat <<xxxaaa aaa aaa
  395  bbb bbbbb bbbb bbbb
  396  cccc cc cccc
  397  dddd ddddd ddddd dddd
  398  ee eeee eeeee eeee eeee
  399  ff fffffff ffffff ff
  400  gggg gggg ggggg
  401  hh hhh hhhhhh hhhhhh
  402  xxx
  403  ; }

> мне бы скрипт такого вида: тратата < text.txt > out.txt

Ну, это уж я и не знаю.... Это помощник нужен.