Конечно,
sed 's/[^0-9]*//g
sed
— это «редактор потока», для помещения в конец канала (|
), перенаправления (, например. <<<
,как в sed 's/[^0-9]*//g' <<< 'yourstring123'
, или используя непосредственно в файле (, т.е.sed 's/[^0-9]*//g' /your/filename
).
Команда s
в sed относится к «подстановке» для замены символов:
$ sed 's/pattern/replacment/' <<< 'pattern123pattern'
replacement123pattern
Модификатор g
в конце означает «глобальный» для замены по всей строке:
$ sed 's/pattern/replacement/g' <<< 'pattern123pattern'
replacement123replacement
[^0-9]*
— это регулярное выражение , в котором происходит волшебство для этой команды.
[: begin matching
^: NOT these characters:
0-9: 0 through 9
]: end match
*: match 0 or more occurances
например, [^0-9]*
будет соответствовать всему, что не является числом в диапазоне от 0 до 9:
sed 's/[^0-9]*//g'
:заменить все не-числовые символы пустой строкой ('' ).
$ sed 's/[^0-9]*//g' <<< 'pattern123pattern'
123
$ sed 's/[^0-9]*//g' <<< '123qwertyui456opasdfghjklzxcvbnm789,./;[]=`~012+:"{}<>?345'
123456789012345
Дополнительную информацию см. в man sed(1)
и regex(7)
.
Я не думаю, что у вас есть лучший вариант, чем auditd
в качестве агрегированного инструмента, но у вас может быть недостаточно четкое представление о том, что происходит. История.bash _управляется пользователем -, и, судя по названию, это функция bash --, пользователь может использовать другую оболочку.
Другой подход заключается в увеличении ведения журналов для большинства инструментов (pam, sshd, *dm, sudo и т. д. ), их централизованном сопоставлении и использовании решения Security Information and Event Monitoring (SIEM )..