LINUX.ORG.RU

sed newline


0

0

Нужно преобразовать данные из gnuplot

x1 y1
x2 y2
x3 y3
...

в список для Mathematica:

{{x1,y1},{x2,y2},...}

Через sed. Всё бы хорошо, но sed упорно отказывается удалять \n:

sed -e 's/^/{/g;s/$/}/g;s/ /,/g;s/\n/,/'

Последняя s/\n/,/ не работает.


Во-первых \r, а во-вторых «newline» в sed'e не стандартизован и зависит от реализации.

awk надежнее

awk '{a=a",{"$1","$2"}"}; END {print "{"substr(a,2)"}"}'

корявенько, но быстро :-)

sdio ★★★★★
()
Ответ на: комментарий от sdio

однозначно поддерживаю!

BEGIN { i = 0; }
      { x[i] = $1; y[i] = $2; i++; }
END   { n = --i;
        printf "{";
        for (i = 0; i <= n; i++) {
                printf "{%s, %s}", x[i], y[i];
                if (i < n)
                        printf ", ";
        }
        printf "}\n"; }
beastie ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.