Поиск и замена текста под Linux

В наличии большое количество файлов. Как .txt, так и .html — соответственно, есть куча переносов и тегов. Есть ли простой способ найти определенный текст и заменить его на свой? Каждый раз писать регулярные выражения — лень, хочется чего-то проще. Под Windows успешно работал @Text Replacer, а что есть под Linux?
  • Вопрос задан
  • 18101 просмотр
Пригласить эксперта
Ответы на вопрос 5
bootch
@bootch
Под линукс есть ls, grep, sed, awk и маны к ним. Под ваши цели — идеальный вариант.
Ответ написан
xaker1
@xaker1
$ grep -rl искомый_текст /путь/до/папки/* | xargs perl -p -i -e 's/искомый_текст/заменяемый_текст/g'

, чу-чуть усложнить запрос, разбив на 2 и ваша проблема так же решена
$ grep -rl '<?' /путь/до/папки/* | xargs perl -p -i -e 's/<?/<?php/g'
$ grep -rl '<?php=' /путь/до/папки/* | xargs perl -p -i -e 's/<?php=/<?=/g'
$ grep -rl '<?phpphp' /путь/до/папки/* | xargs perl -p -i -e 's/<?phpphp/<?php/g'

Единственное — не понял условия
которые не внутри строк
Ответ написан
rasa
@rasa
Прикрутите plugin к gedit'у.
Ответ написан
Livid
@Livid
Универсального решения нет. Можно набросать скрипт на каком-нибудь языке для этой задачи.
Сразу оговорюсь, что awk, sed, perl в самом общем случае не подходят. На python или php написать скрипт не составит труда, наверное.
#!/usr/bin/python

import sys
data=open(sys.argv[1]).read().replace("from","to")
open(sys.argv[1],"w").write(data)

Что-то в таком духе. Многострочные строки (простите за каламбур) задаются тройными кавычками. Можно читать from и to из файлов, естественно. open(filename).read()

Если совсем плохо с программированием — говорите как Вам удобнее задавать вход, скрипт я напишу.
Ответ написан
holyorb2
@holyorb2
Вчера поднял аналогичную тему
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы