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

Исходное сообщение
"sed: символ новой строки"

Отправлено Gleb , 25-Ноя-05 12:49 
Hi, All!

как преобразовать myfile:
AAAA BBBB CCCC DDDD EEEE

в myfile:
AAAA
BBBB
CCCC
DDDD
EEEE

sed 's/\ /\n/g' myfile
выдает myfile:
AAAAnBBBBnCCCCnDDDDnEEEE


Содержание

Сообщения в этом обсуждении
"sed: символ новой строки"
Отправлено Ager , 25-Ноя-05 14:58 
tr ' ' '\n' < myfile > newfile

"sed: символ новой строки"
Отправлено Gleb , 25-Ноя-05 15:04 
>tr ' ' '\n' < myfile > newfile


Спасибо!


"sed: символ новой строки"
Отправлено Brainbug , 25-Ноя-05 15:44 
>Hi, All!
>
>как преобразовать myfile:
>AAAA BBBB CCCC DDDD EEEE
>
>в myfile:
>AAAA
>BBBB
>CCCC
>DDDD
>EEEE
>
>sed 's/\ /\n/g' myfile
>выдает myfile:
>AAAAnBBBBnCCCCnDDDDnEEEE


[temp@temp ~]$ echo "AAAA AAAA AAAAA" | tr [:space:] '\n'
AAAA
AAAA
AAAAA
[temp@temp ~]$ echo "AAAA AAAA AAAAA" | sed 's/ /\n/g'
AAAA
AAAA
AAAAA
[temp@temp ~]$


"sed: символ новой строки"
Отправлено Gleb , 25-Ноя-05 16:21 
>
>
>[temp@temp ~]$ echo "AAAA AAAA AAAAA" | tr [:space:] '\n'
>AAAA
>AAAA
>AAAAA
>[temp@temp ~]$ echo "AAAA AAAA AAAAA" | sed 's/ /\n/g'
>AAAA
>AAAA
>AAAAA
>[temp@temp ~]$


извините, но у меня комменда:
echo "AAAA AAAA AAAAA" | sed 's/ /\n/g'
выдает:
AAAAnAAAAnAAAAA


"sed: символ новой строки"
Отправлено AMDmi3 , 25-Ноя-05 18:12 
>sed 's/\ /\n/g' myfile
>выдает myfile:
>AAAAnBBBBnCCCCnDDDDnEEEE

sed не умеет подставлять \n

`The escape sequence \n matches a newline character embedded in the pattern space.  You can't, however, use a literal newline character in an address or in the substitute command.'

правильный способ - tr


"sed: символ новой строки"
Отправлено Gleb , 29-Ноя-05 12:09 
>
>sed не умеет подставлять \n
>
>`The escape sequence \n matches a newline character embedded in the pattern
>space.  You can't, however, use a literal newline character in
>an address or in the substitute command.'
>
>правильный способ - tr


Огромное спасибо!
Не знал :(

tr - не подойдет, заранее не извесно кол-во пробелов
(можно, конечно, еще раз пройти и удалить пустые строки, но весь скрипт и так "тяжелый")

если кому интересно использовать \n в sed, то выход:

sed 's/\ /\    # (\<Enter>)
/g' myfile     # именно с новой строки!


"sed: символ новой строки"
Отправлено AMDmi3 , 29-Ноя-05 20:09 
>tr - не подойдет, заранее не извесно кол-во пробелов
>(можно, конечно, еще раз пройти и удалить пустые строки, но весь скрипт
>и так "тяжелый")

sed -e 's|[ ][ ]*| |g' | tr


"sed: символ новой строки"
Отправлено Александр , 01-Дек-05 09:45 
>>
>>sed не умеет подставлять \n
>>
>>`The escape sequence \n matches a newline character embedded in the pattern
>>space.  You can't, however, use a literal newline character in
>>an address or in the substitute command.'
>>
>>правильный способ - tr
>
>
>Огромное спасибо!
>Не знал :(
>
>tr - не подойдет, заранее не извесно кол-во пробелов
>(можно, конечно, еще раз пройти и удалить пустые строки, но весь скрипт
>и так "тяжелый")
>
>если кому интересно использовать \n в sed, то выход:
>
>sed 's/\ /\    # (\<Enter>)
>/g' myfile     # именно с новой строки!

echo "AAA    BBB" | tr -s ' ' '\n'