Рейтинг:3

Как заменить строку в нескольких файлах в нескольких папках с разной иерархией в командной строке Linux

флаг il

У меня много файлов с расширением *.запуск распределены по разным папкам внутри родительского каталога, иерархия не всегда одинакова для .запуск файл. то есть: src/папка/sth.launch и src/folder2/../../another.launch, так что это решение здесь не работает!

Как я могу заменить строку xarco.py с другой строкой ксарково всех этих*запуск файлы в разных папках и на разных уровнях с помощью команды Linux? заранее спасибо.

Рейтинг:5
флаг jp

Находясь в родительском каталоге, вы можете попробовать следующую команду:

найти . -type f -name "*.launch" -exec echo sed -i 's/xarco.py/xarco/g' {} \;

и если это "выглядит хорошо" удалить эхо делать настоящую работу,

найти . -type f -name "*.launch" -exec sed -i 's/xarco.py/xarco/g' {} \;

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

судо найти...
Fabian avatar
флаг cn
Это потому, что он допускает «пробный прогон».

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.