Регулярное выражение с sed

Рассматривали ли вы возможность использования / проверки журнала аудита? Или использовать что-то вроде sudo (которое будет регистрировать его), чтобы запустить программу? Вы даже можете подумать о том, чтобы событие системного журнала было отправлено на другой сервер, к которому у пользователя (-ей) нет доступа.

6
06.03.2017, 13:52
2 ответа

Почему бы не использовать для этого базовое имя ? Например:

for file in *mp3; do basename "$file"; done
6
27.01.2020, 20:21

Ваша основная проблема заключается в том, что вы пытаетесь использовать / в качестве разделителя, когда / также является символом, который вы будете разбирать.

Вам нужно использовать другой разделитель, например, трубу. Сопоставьте все и /, затем используйте \( и \) (группы захвата), отделяя часть, которую вы хотите извлечь, и используйте \1, выделяя эту группу:

echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'

Вы можете работать без групп захвата: просто отбрасывая все до последней /:

echo "yourstring" | sed 's|.*/||'
11
27.01.2020, 20:21

Теги

Похожие вопросы