man 5 utmp дает хороший ответ:
The utmp file allows one to discover information about who is currently using the system.
The wtmp file records all logins and logouts.
Дополнение правильного ответа @user1774469, позволяющее заменить строку в файлах *.log
во всех подпапках под журналом, с помощью bash, достигается с помощью
1 )Активировать globstar
опцию оболочки:
shopt -s globstar
2 )Введите правильную команду @user1774469 со следующей модификацией
sed 's/server\.com/192.168.0.1/' /actlogs/**/*.log
Тогда он будет соответствовать всем файлам с расширением .log
в любом месте ниже каталога /actlogs/
.
это должно сработать:
find. -type f -name "*.log" -exec sed 's/server\.com/192.168.0.1/g' {} +
Звучит как работа дляsed
:
sed 's/server\.com/192.168.0.1/' *.log
sed
— это Stream EEditor, который обрабатывает ввод построчно. Здесь мы используем s
, заменяющую команду s/regex/replacement/flags
. После того, как вы убедились, что это именно то, что вам нужно, вы можете добавить флаг i
, который внесет изменения «на месте». *
будет отображаться в оболочке и передавать все файлы, которые заканчиваются на .log
, для sed в качестве входных данных.
sed 's/server\.com/192.168.0.1/' *.log
Обратите внимание, что это заменит только первое вхождение шаблона в каждой строке. Если вы хотите заменить все вхождения независимо от того, где они появляются, вы можете использовать глобальный флаг:
sed 's/server\.com/192.168.0.1/g' *.log
Для иерархии каталогов, которые вам нужно найти, вы можете использовать find
, а затем выполнить sed
для результатов:
find /home/www/ -type f -name '*.log' -exec \
sed 's/server\.com/192.168.0.1/g' {} +