sed найти и заменить строку

sshfs построен на ssh , который, в свою очередь, использует TCP. Вы не можете переместить конечную точку с TCP-соединением и ожидать, что она выживет.

Вы могли бы наложить его поверх протокола на основе UDP, что может помочь с изменением IP-адреса, но это все равно не поможет с потерей подключения, замораживающей вашу точку монтирования.

1
11.06.2019, 20:25
2 ответа
sed -i backup -E '/<update>/s/[0-9]{4}-[0-9]{2}-[0-9]{2}/2019-06-30/;/<version>/s/[0-9]\.[0-9]{1,2}/1.28/' *
  • -i backupозначает редактировать файлы на своих местах, но сохранить резервную копию файла с расширением backup. Вы можете удалить их, если команда сделала то, что вы ожидали. Если он сделал что-то еще, вы будете счастливы иметь резервные копии!
  • -Eдля расширенных регулярных выражений. Делает скрипт более читабельным, потому что вам не нужно экранировать{}
  • Для каждой строки с шаблоном /<update>/выполните s/[0-9]{4}-[0-9]{2}-[0-9]{2}/2019-06-30/, который заменяет строку даты ####-##-##заданной датой
  • Для каждой строки с шаблоном /<version>/выполните s/[0-9]\.[0-9]{1,2}/1.28/, который заменяет строку версии #.#или #.##на заданную версию
4
27.01.2020, 23:17

Если вы не против ввести две команды, вы можете использовать:

sed -i 's/\<update\>2013-02-10\<\/update\>/2019-06-30\<\/update\>/g' *

sed -i 's/\<version\>1.15/1.28\<\/version\>/g' *

В домашнем каталоге, где находятся файлы.

В качестве альтернативы, если вы хотите, чтобы он выполнялся рекурсивно:

find./ -type f -exec sed -i 's/\<update\>2013-02-10/2019-06-30\<\/update\>/' {} \;

find./ -type f -exec sed -i 's/\<version\>1.15/1.28\<\/version\>/' {} \;

0
27.01.2020, 23:17

Теги

Похожие вопросы