С помощью sed
вы можете сделать это следующим образом:
sed -n '/^[^ ]*$/{H;d;};G;/ \(.*\)\n.*\n\1/d;P' fileB fileA
Это :Первый файл процесса B. Если строки не содержат пробелов, предполагается, что они являются именами хостов в файле B, и мы добавляем их в пробел и продолжаем({H;d;}
)
Предполагается, что все остальные строки относятся к файлу A. Добавляя пробел к списку имен хостов (G
), все строки с последним словом строки, которые повторяются в списке имен хостов, могут быть удалены. Остальные строки печатаются без завершающего списка (P
). Опция -n
подавляет вывод по умолчанию.
Редактировать:На самом деле нужно делать
sed -n '/^[^ ]*$/{H;d;};G;/ \(.*\)\n.*\n\1\n/d;/ \(.*\)\n.*\n\1$/d;P' fileB fileA
, чтобы избежать особых случаев.
Чтобы добавить необычные символы в документ PostScript с помощью groff, нужно приложить немало усилий. Сначала вам нужно выбрать шрифт, который содержит символ. Погуглив имя и тег unicode , можно найти, например, этот сайт , где сказано, что, например, он встречается в шрифте DejaVuSans -Bold, который у меня случайно есть на моя система в формате ttf.
Вам нужно преобразовать ttf в формат, нужный groff. Я создал каталог /tmp/font/devps
и в нем запустил
ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold
, где ttf2pt1
пришло из одноименного пакета в моей системе. Это создало файлы DejaVuSans-Bold.afm
и DejaVuSans-Bold.pfa
. Им нужно больше конверсий с
afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold
, где afmtodit
пришло из пакета groff-perl
.Этот созданный файл DejaVuSans-Bold
, на который теперь можно ссылаться из groff с помощью команды
.ft DejaVuSans-Bold
при условии, что вы сказали ему, где его найти, выполнив
export GROFF_FONT_PATH=/tmp/font
перед запуском groff -Tps
. Вам также необходимо ссылаться на символ по его значению Unicode во входном тексте, например:
here \[u260A] there
(Если ваш входной файл находится в формате utf -8, вы можете выполнить это преобразование, добавив параметр groff -K utf-8
, который я не пробовал ). Вот набор команд, которые сработали для меня (вам может понадобиться изменить источник файла ttf):
mkdir -p /tmp/font/devps
cd /tmp/font/devps
ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold
afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold
export GROFF_FONT_PATH=/tmp/font
groff -Tps >text.ps <<\!
.ps 20
.vs 24
.ft DejaVuSans-Bold
here \[u260A] there
!
gv text.ps