2013-03-09 2 views
1

Мне нужен скрипт, который будет делать следующее, но понятия не имею, как подойти к идее.Рекурсивно отредактируйте файл с определенным именем

  1. Рекурсивных сканировать директорию/дом/корень/multicraft/сервера найти все файлы с именем «server.properties»
  2. Редактировать файл замена «вид расстояние = (число здесь)» с «видом на расстояниях = 4 "

Как бы я это сделал?

ответ

4

Вы можете использовать find, чтобы рекурсивно пройти через каталоги. Он может выполнить команду через -exec. Для редактирования файла, вы можете использовать sed:

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

Работал как шарм, спасибо! –

1

попробовать это:

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

сделать резервную копию, прежде чем пытаться его.

Смежные вопросы