在命令行下具有特定文件名的文件中批量查找/替换

时间:2017-12-13 21:00:47

标签: search replace grep

我正在寻找一个快速命令来搜索所有.htaccess文件中的特定IP地址,并从命令行将其更改为另一个IP地址

类似

grep -rl '255.255.254.254' ./ | xargs sed -i 's/254/253/g'

我知道上面的例子是一个不好的方法,只是一个例子(并显示我做了一些搜索以找到解决方案

Search: files with filename .htaccess (within 2 levels deep of current path?)
Find: 255.255.254.254
Replace with: 255.255.253.253

或者,这对我的服务器要求太多了,我会更好地更换它们,因为我找到了它们?

1 个答案:

答案 0 :(得分:1)

尝试:

val itemView = when(view) {
    is ItemView -> view
    else -> factory()
}

工作原理:

  • find . -type f -name '.htaccess' -execdir sed -i 's/255\.255\.254\.254/255.255.253.253/g' {} +

    开始在当前目录中查找文件。

  • find .

    只查看常规文件。

  • -type f

    仅查找名为-name '.htaccess'的文件。

  • .htaccess

    对于找到的任何此类文件,请对它们运行此sed命令。

    由于-execdir sed -i 's/255\.255\.254\.254/255.255.253.253/g' {} +是通配符而您可能只希望匹配文字句点,因此我们将其转义:.

    我们使用\.而不是旧-execdir,因为它对竞争条件更安全。