Очевидно, PostScript - это путь ... XD
(%stdin) (r) file
{
dup 100 string readline not {exit} if
{
dup () eq {pop exit} if
token pop 3 string cvs
dup 0 get << 98 / 100 / >> exch known
{print ( ) print} {pop} ifelse
} loop
/ =
} loop
Использование: gs -q -dNOPROMPT -dNODISPLAY -dBATCH thisfile.ps < input
Примечания: замените << 98 / 100 / >>
соответствующими значениями ASCII (98 = b, 100 = d), за которыми следует косая черта, разделенная пробелами (хотя вам не нужно использовать косую черту; это просто фиктивный объект ). Например, чтобы выбрать «c», «e» и «f», используйте << 99 / 101 / 102 / >>
Каждая строка может содержать не более 100 символов; если ваши строки длиннее, замените 100 string
на большее число. Аналогично замените 3 string
, если ваши записи x=#
длиннее трех символов. Это не работает, если x больше, чем один символ.