Комментарий о «зарезервированном» вызывает недоумение, потому что OSC 50
был задокументирован в управляющих последовательностях xterm с 1991 года для изменения шрифта. Вот ссылка на версию X11R5 .
Типографику на веб-странице можно улучшить. Вот небольшой совет, который поможет вам разобраться в проблеме:
Ps =
5 0
-> Установить шрифт на Pt .Эти элементы управления можно отключить с помощью ресурса
allowFontOps
. Если Pt начинается с символа «#», индекс в меню шрифтов, относительный (если следующий символ - знак плюса или минуса ) или абсолютный. Ожидается число, но не обязательно после знака (по умолчанию текущая запись для относительной индексации, ноль для абсолютной индексации). То же правило (знак плюс или минус, необязательный номер) используется при запросе шрифта. Остальная часть Pt игнорируется.Шрифт можно указать после индексного выражения "#", добавив пробел, а затем спецификатор шрифта.
Если установлен пункт меню «TrueType Fonts» (ресурс
renderFont
), то этот элемент управления устанавливает / запрашивает ресурсfaceName
.
Скорее всего, проблема в последнем абзаце, т.е. вы использовали шрифты TrueType и (а не только любой текст ) установили для имени шрифта значение, не соответствующее шрифту. Fontconfig не имеет ... никакой полезной проверки ошибок, о которой можно говорить ... и просто "восстановит", используя шрифт по умолчанию, не беспокоясь о том, чтобы сообщить приложению, что что-то пошло не так.Если вы это сделали, вы не сможете сбросить через меню имя шрифта TrueType (очевидный выбор в меню шрифтов изменяет только размеры ). Однако управляющие последовательности по-прежнему работают.
Терминал OSX дополняет эту ситуацию отсутствием полезной документации. Но некоторые из его функций скопированы из разных мест (или могут быть скопированы в другие места). Функция изменения профиля появилась в KDE Konsole в 2008 году как часть изменений для отчета об ошибке # 155801 (любопытно цитируя довольно старую копию документа контрольных последовательностей xterm , который кто-то сделал в страница в Интернете). На самом деле 50
было в коде 2007 года (жестко запрограммировано). Но изменение в 2008 году дало ему имя и отметило, что оно противоречит xterm OSC 50
.
Строки ожидаемого вывода заканчиваются двумя пробелами и имеют поля, разделенные одной табуляцией и одним пробелом.
Если это действительно то, что вы хотите, вам понадобится:
awk -v 'OFS=\t ' '$3="1 "' < infile > outfile
Или с sed
:
tab=$(printf '\t')
sed "
s/[[:blank:]]\{1,\}/$tab /g
s/[^[:blank:]]\{1,\}[[:blank:]]*$/1 /
s/^[[:blank:]]*//" < infile > outfile
Просто с помощью GNU sed
, используя -i
для замены текста непосредственно в файле:
sed -i 's:\(.*\s\)\(.*\s\)\(.*\):\1\21:g' textfile
столбцы сопоставляются группами регулярных выражений в скобках, повторно используя их с \ 1
и \ 2
, а затем используя «1» для замены последней группы.
В этом случае решение, предложенное с использованием awk
, также является красивым и коротким.
try
awk '{$3=1 ; print ;}' oldfile > newfile
$3 = 1
установит третье поле в 1sed
с опцией -i
для редактирования на месте)sed -i 's/[0-9.]*$/1/' file
[0-9.]*$
- последовательность от 0
до 9
и
до конца строки. sed -i 's/[^ ]*$/1/' file
[^ ]*$
любой символ, кроме пробела, до конца строки. это сделает работу:
cat textfiles | cut -d' ' -f-2 | sed 's/$/ 1/'