Учитывая один файл , следующая команда sed
выполнит замену в этом файле:
sed 's/@driver.find_element(\(.*\)).click/click(\1)/' file >file.tmp &&
mv file.tmp file
Мы хотели бы найти все файлы в файловой иерархии и выполнить это для всех из них:
find. -type f \
-exec sh -c \
'for n; do
sed "s/@driver.find_element(\(.*\)).click/click(\1)/" "$n" >"$n.tmp" &&
mv "$n.tmp" "$n"
done' sh {} +
Если вы хотите изменить только файлы с определенным именем, например *.js
, просто добавьте -name '*.js'
перед -exec
.
Предполагается, что добавление .tmp
в конец имени файла не приведет к случайной перезаписи существующего файла.
Я намеренно не использовал sed -i
, так как -i
общеизвестно, что -нельзя переносить между sed
реализациями.
Это на openSuSE.
Я обнаружил, что могу сделать это с помощьюsystemctl is-enabled $app