В Linux, как мне пройти каждый файл и сделать замену? - PullRequest
1 голос
/ 27 января 2011

Предположим, я хочу просмотреть каждый файл (тоже рекурсивно) и заменить все на:

{{ MEDIA_URL }}

на:

{% media_url %}/

Какую команду можно запустить в Linux для заменыпервый с последним, во всех моих файлах, рекурсивно?

Ответы [ 2 ]

6 голосов
/ 27 января 2011

Как насчет решения sed ...

find ./ -type f -exec sed -i 's/{{ MEDIA_URL }}/{% media_url %}\//g' {} \;

Обновлено: добавлено / г согласно предложенному комментатору

Обновлено: каким-то образом символы Юникодаскопировали туда

3 голосов
/ 27 января 2011

В максимально возможной степени я использую xargs вместо -exec -exec у вас будет один процесс, запущенный для каждого файла, а с xargs у вас будет только один процесс.Для этого вы должны использовать опцию sed -s .Эта команда быстрее, если у вас есть несколько файлов:

find ./ -type f | xargs sed -s -i 's/{{ MEDIA_URL }}/{% media_url %}\//g'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...