查找字符串并将其替换为另一个字符串命令行

查找字符串并将其替换为另一个字符串命令行

我有一个广告拦截主机文件,其中的0.0.0.0IP 指向 URL。如何在没有任何可视文本编辑器的情况下0.0.0.0127.0.0.1命令行替换?手动执行此操作nanovi是不可能的,列表有超过 15k 行。

由此

0.0.0.0  c.one97adworks.com
0.0.0.0  0koryu0.easter.ne.jp
0.0.0.0  static.super-links.net

对此

127.0.0.1  c.one97adworks.com
127.0.0.1  0koryu0.easter.ne.jp
127.0.0.1  static.super-links.net

立刻。

我的 shell bash 4.3.33。

更新 两票反对?请发表评论。

答案1

perl -lpe 's/^(0\.){3}0/127.0.0.1/' file > newfile

应该可以解决问题。

答案2

请注意,由于文件的结构是这样的,您也可以在 Vi、nano 或任何其他文本编辑器中执行此操作;只需使用其查找/替换命令即可。

例如,在 nano 中,最简单的文本编辑器:

  1. 打开文件
  2. CTRLW然后CTRLR
  3. 输入0.0.0.0作为搜索字符串
  4. 输入127.0.0.1作为替换字符串
  5. A替换所有匹配项
  6. 保存编辑后的文件

答案3

使用 file1.txt 中的内容,结果将在 file2.txt 中,内容如下:

sed 's/^0\.0\.0\.0/127.0.0.1/' file1.txt > file2.txt

相关内容