Здесь есть очень приятная sed магия. И несколько хороших замечаний о переполнении пространства шаблонов. Я люблю использовать sed , даже когда это не самый простой способ, потому что он такой компактный и мощный. Однако у него есть свои ограничения, и для больших объемов данных пространство шаблонов должно быть большим.
GNU говорит следующее:
Тем, кто хочет писать переносимые сценарии sed, следует знать, что некоторые реализации, как известно, ограничивают длину строк (для шаблонов и удерживающих пространств) не более 4000 байтов. Стандарт posix указывает, что соответствующие реализации sed должны поддерживать длину строки не менее 8192 байта. GNU sed не имеет встроенного ограничения на длину строки; пока он может использовать malloc () больше (виртуальной) памяти, вы можете вводить или строить строки столько, сколько захотите.
Однако рекурсия используется для обработки подшаблонов и неопределенного повторения . Это означает, что доступное пространство стека может ограничивать размер буфера, который может обрабатываться определенными шаблонами.
Мне нечего добавить, но я хотел бы указать вам на свое руководство по sed . Отлично. http://www.grymoire.com/Unix/Sed.html
и вот мое решение:
for i in $(cat test.txt); do echo -n $i','; done; echo '' >> somewhere
хорошо, оно работает
Макросы me
в groff
используют следующие положения шрифта для различных типов текста:
Макросы будут переключаться на использование шрифтов, загруженных в эти позиции, при установке текста, например, для. заголовок раздела, поэтому макрос .ft
будет неэффективным. Вы все равно сможете использовать, например.
.sh 1 "\f(HBSection title"
, чтобы переключиться на полужирный шрифт без засечек -для заголовка раздела, но нумерация разделов по-прежнему будет использоваться с засечками.
Файл макроса me
устанавливает ряд параметров, которые они используют для таких вещей, как шрифты, размер точек и т. д., поэтому многие интересные вещи довольно легко изменить, просто изменив несколько числовых регистров и тому подобное., но это, к сожалению, не описано в руководстве groff_me(7)
. Он также хорошо спрятан в файле макроса e.tmac
(из-за того, что из файла удалены комментарии ). Мне пришлось прочитать исходный (необработанный -файл)e.tmac-u
в исходном дистрибутиве groff
, чтобы понять это :
.\" *** PARAMETRIC INITIALIZATIONS ***
.
.
.rr x
.nr $v \n(.v00+\n(.sp-1/\n(.sp \" vs as % of ps for.sz request
.nr $V \n($v \" same for displays & footnotes
.nr hm 4v \" header margin
.nr tm 7v \" top margin
.nr bm 6v \" bottom margin
.nr fm 3v \" footer margin
.nr tf 3 \" title font: (real) Times Bold
.nr tp 10 \" title point size
.hy 6
.nr bi 4m \" indent for blocks
.nr pi 5n \" indent for paragraphs
.nr pf 1 \" normal text font
.nr pp 10 \" normal text point size
.nr qi 4n \" indent for quotes
.nr qp -1 \" down one point
.nr ii 5n \" indent for.ip's and.np's
.nr $m 1 \" max number of columns
.nr $s 4n \" column separation
.nr sf 3 \" section font -- Times Bold
.nr sp 10 \" section title pointsize
.nr ss 12p \" section prespacing
.nr si 0 \" section indent
Чтобы изменить шрифт раздела и заголовка на полужирный шрифт без засечек -, используйте
.fp 3 HB
, чтобы загрузить шрифт HB
в позицию 3. Затем он будет подхвачен макросом .sh
и другими.
Пример:
.fp 3 HB
.bp
.sh 1 "Heading 1"
.lp
Text text.
.sh 2 "Heading 2"
.lp
Text text.
Это приведет к