Маскировка IP-адреса может быть лучше достигнута с помощью perl
.Вы можете посмотреть здесь для использования уже доступных модулей, чтобы вам не пришлось заново изобретать колесо.К сожалению, я не знаю perl
, поэтому могу предложить только sed
решение.
Вы можете использовать что-то подобное для замены всех ip-адресов в вашем файле.
sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/**masked ip**/g' < yourfile > newfile
Ваш файл:
[jaypal:~/Temp] cat fmp
this is 12.34.55.222 and
21.3.34.5
also there is 133.42.55.23
Шаг 1: Определите IP-адреса:
[jaypal:~/Temp] sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/**&**/g' fmp
this is **12.34.55.222** and
**21.3.34.5**
also there is **133.42.55.23**
Шаг 2: замените IP-адрес своей маской
[jaypal:~/Temp] sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/**&**/g' fmp | sed '/\*\*.*\\*\*/s//**masked ip**/'
this is **masked ip** and
**masked ip**
also there is **masked ip**
Вы можете сделать sed -i
(in-line) замену или использовать >
, чтобы перенаправить вывод в другой файл.
Очевидно, это можно свести к следующему.Вышеприведенное было бы полезно для отладки, так как вы можете посмотреть, что изменяется перед внесением изменения.
[jaypal:~/Temp] sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/** masked ip **/g' fmp
this is ** masked ip ** and
** masked ip **
also there is ** masked ip **
Удачи !!
Обновление:
Как опубликовано Отметить в comments
, вариант perl
будет иметь вид -
perl -pe 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/** masked ip **/g' < inputfile > outputfile
Обновление II:
По требованию OP следующий однострочный файл найдет файлы и выполнит замену.
find /path/to/dir/ -type f -name "*.html" -exec perl -ibak -pe 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/** masked ip **/g' {} \;