У меня много файлов .js с одинаковыми именами (получил. js), где мне просто нужно найти и заменить на них какой-то текст. Текст, который нужно найти:
\ x72 \ x6Fx75 \ x6E
И должен быть заменен на: \ x72 \ x6F \ x75 \ x6E
(только \ посередине)
Я пробовал SED с find, именно этот:
find '/ home /' -name 'got.js' -exec sed -i -e 's% \ x72 \ x6Fx75 \ x6E% \ x72 \ x6F \ x75 \ x6E% g '' {} '%;
, но я получаю сообщение об ошибке find: отсутствует аргумент для' -exec '
. Если я изменю %
на \
, он не покажет никаких ошибок, изменится дата последнего изменения файлов, но ничего не изменится в файлах.
Также я должен упомянуть, что этот \ x72 \ x6Fx75 \ x6E
текст является частью большой закодированной фразы. Я подумал, что это может быть проблемой, и поместил всю фразу в sed, но результат был тот же: ничего не меняется :-(
Надеюсь, что кто-нибудь поможет мне в этом.
Спасибо всем!
Попробуйте следующее:
найти '/ home /' -name 'got.js' -exec sed -i -e 's / \\ x72 \\ x6Fx75 \\ x6E / \\ x72 \\ x6F \\ x75 \\ x6E / g '{} \;
Изменить: была опечатка в исходной командной строке. 2 одинарные кавычки после ../g