Замените host на ip в файле .txt

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.

1
10.01.2020, 22:10
3 ответа

Дополнение правильного ответа @user1774469, позволяющее заменить строку в файлах *.logво всех подпапках под журналом, с помощью bash, достигается с помощью

1 )Активировать globstarопцию оболочки:

shopt -s globstar

2 )Введите правильную команду @user1774469 со следующей модификацией

sed 's/server\.com/192.168.0.1/' /actlogs/**/*.log

Тогда он будет соответствовать всем файлам с расширением .logв любом месте ниже каталога /actlogs/.

0
27.01.2020, 23:55

это должно сработать:

find. -type f -name "*.log" -exec sed 's/server\.com/192.168.0.1/g' {} +
0
27.01.2020, 23:55

Звучит как работа для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' {} +
0
27.01.2020, 23:55

Теги

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