递归编辑某个名称的文件

时间:2013-03-09 21:13:29

标签: linux bash recursion edit

我需要一个可以执行以下操作的脚本,但不知道如何处理这个想法。

  1. 递归扫描目录/ home / root / multicraft / servers,查找名为“server.properties”的所有文件
  2. 使用“view-distance = 4”编辑替换“view-distance =(此处为数字)”的文件
  3. 我将如何做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以使用find递归浏览目录。它可以通过-exec执行命令。要编辑文件,您可以使用sed

find /home/root/multicraft/servers \
    -name server.properties \
    -exec sed -i~ 's/view-distance=[0-9]\+/view-distance=4/' {} \;

答案 1 :(得分:1)

试试这个:

find  /home/root/multicraft/servers -name "server.properties"|xargs sed -ri 's/(view-distance)=[0-9]+/\1=4/'

在尝试之前进行备份。