ОП явно спрашивает о сообщениях, отображаемых ПОСЛЕ входа в систему, все «/etc/issue» отображаются ДО ввода логина и пароля, поэтому они не по теме -.
Шаги «оболочки входа»::
/etc/issue
показать Сообщение дня от:
/etc/motd
/etc/update-motd.d
пуск /etc/profile
и~/.bash_profile
NB.bashrc выполняется для НЕ -оболочки входа в систему
@Naftuli Kay добавьте свое изображение ASCII в /etc/motd
вы также можете поместить скрипт в /etc/update-motd.d
; для печати, не зависящей от пользователя, сценарий может находиться в /etc/profile
. ~/.bash_profile
для однопользовательской печати
Для удаления:
[
(\[
)[A-Z]
только Ascii)cf
(([A-Z]|cf)
). [^]]
не]
)]
(\]
). Вы можете использовать (в Perl )любой из:
\[([A-Z]|cf)[^]]\] # Ascii uppercase, avoid `]`
[[]([A-Z]|cf)[^]][]] # A bit more confusing expression of the same.
[[]([A-Z]|cf).*?[]] # Use a lazy quantifier (the shorter match).
[[](\p{Lu}|cf).*?[]] # Unicode property: Letter Uppercase.
\[(\p{Lu}|cf).*?\] # Probably easier to read.
Если не использовать выражение диапазона с отрицанием([^]]
)или отложенное сопоставление (.*?
), выражение будет соответствовать всей строке:
this part [CP 5.491] or this part [cf 283: 56 in Colapietro, 1989, p. XIV]
Не каждая часть.
perl -pe '$_ =~ s/\[(\p{Lu}|cf).*?\]//g' file
Если предположить, что используется только набор символов ASCII, состоящий из заглавных букв, этого может быть достаточно, если вы хотите удалить совпадающую строку целиком:
perl -ne 'print unless m{\[([A-Z]|cf).*\]}' file
Если вы хотите удалить только такие разделы, как «[CP 5.491], оставив окружающий текст:
perl -pe 's{\[([A-Z]|cf).*?\]}{}g' file