Команда sed не заменяет текст символом новой строки

Вы можете использовать troff с его специальным препроцессором для рисования: рис... Синтаксис pic прост, есть также препроцессор pic, который предназначен для быстрого создания графиков... в linux и osX troff уже реализован (обычно groff)... есть также семейная реликвия troff или plan9 (см. plan9port)...

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

простой пример с двумя полярными бордюрами на каждой странице

groff -p polar.tr -Tps > polar.ps

polar.tr is:

.po 0i
.PS
u = 5i
for t = 0 to 100  by 0.001 do {
    x=cos(7*t/2)*cos(t)
    y=cos(7*t/2)*sin(t)
    "." at x*u,y*u
}
.PE
.bp
.PS
u = 5i
for t = 0 to 100 by 0.001 do {
    x=(1+cos(7*t/2))*cos(t)
    y=(1+cos(7*t/2))*sin(t)
    "." at x*u,y*u
}
.PE
0
13.10.2015, 22:06
2 ответа

Эта проблема возникает в версии sed для Mac. Попробуйте установить GNU-версию sed с помощью brew install coreutils, после чего

gsed "s/,/\\n/g"

должно работать. Кроме того, tr ',' \\n должен работать, если строка поиска состоит только из одного символа.

0
28.01.2020, 02:14

Действительно, Unix Echo + Sed не всегда обрабатывают \n как символ новой строки. Я решил эту проблему, предоставив вместо этого возврат каретки ASCII 0xd с вертикальной вкладкой ASCII 0xb.

Например, добавьте новый символ строки с помощью команды sed, используя переменную:

eol="\xd\xb"
echo -e "hello" | sed "s/$/$eol/"
0
28.01.2020, 02:14

Теги

Похожие вопросы