изд, 35 знаков
s/[a-zA-Z]*\([a-zA-Z]\)\|./\1/g
p
Q
Итак, мир заканчивается в ред. Поскольку мне нравится быть слишком буквальным, я решил написать, чтобы написать решение с ed - и, очевидно, это на самом деле язык программирования . Он на удивление короток, даже если учесть, что в этой ветке уже есть множество более коротких решений. Было бы лучше, если бы я мог использовать что-то другое [a-zA-Z]
, но, учитывая, что ed не является языком программирования, на самом деле он достаточно хорош.
Во-первых, я хотел бы сказать, что это анализирует только последнюю строку в файле. Можно было бы проанализировать больше, просто введите ,
в начале две первые строки (это указало диапазон «все», а не стандартный диапазон последней строки), но это увеличило бы размер кода до 37 символов.
Теперь для объяснений. Первая строка делает именно то, что делает решение Perl (кроме как без поддержки символов Unicode). Я не скопировал решение Perl, я просто изобрел нечто подобное по стечению обстоятельств.
Вторая строка печатает последнюю строку, чтобы вы могли видеть результат. Третья строка заставляет выйти - я должен это сделать, в противном ed
случае напечатал бы, ?
чтобы напомнить вам, что вы не сохранили файл.
Теперь о том, как его выполнить. Ну, это очень просто. Просто запустите ed
файл, содержащий тестовый пример, пока я пишу мою программу, вот так.
ed -s testcase < program
-s
молчит. Это предотвращает ed
вывод некрасивого размера файла в начале. В конце концов, я использую его как скрипт, а не как редактор, поэтому мне не нужны метаданные. Если бы я не сделал этого, ed показал бы размер файла, который я не мог бы предотвратить иначе.