замена sed - замена текста в наборе файлов

Можно использовать urxvt-perls для включения ярлыков клавиатур для копии и вставки в urxvt.

Поместите необходимые сценарии в /usr/lib/urxvt/perl/ и добавьте эти строки к Вашему .X{resources,defaults}:

URxvt.perl-ext-common: ...,keyboard-select
URxvt.keysym.M-Escape: perl:keyboard-select:activate

1
16.11.2018, 21:34
3 ответа

Попытайтесь использовать это:

sed 's@__esct(\(.*)\)@$this->escape($this->translate(\1)@'  file.txt
3
27.01.2020, 23:21
  • 1
    Не будет работать, пропуская финал ) –  Dennis Kaarsemaker 17.01.2013, 22:52
  • 2
    отредактировало соответственно =) –  Gilles Quenot 17.01.2013, 22:54
  • 3
    , Это теперь вызовет дополнительное ) появиться :) Я думаю, что Вы имеете в виду (\(.*\)) как в моем ответе. –  Dennis Kaarsemaker 17.01.2013, 22:56
  • 4
    2 (, 2 закрытия ) –  Gilles Quenot 17.01.2013, 23:02
  • 5
    . обработанный как очарование! (не может upvote без 15 репутаций, по-видимому) –  Ryan Eckert 17.01.2013, 23:12
sed -e 's/__esct(\(.*\))/$this->escape($this->translate(\1))/'

Должен получить Вас длинный путь. Это перестанет работать, если Вы будете иметь foo(__esct('Some text'))

sed -e 's/__esct(\([^(]*\))/$this->escape($this->translate(\1))/'

Этот будет работать на тех, но перестанет работать для __esct(foo('Some text'))

2
27.01.2020, 23:21
  • 1
    Вы забывали заключительную наклонную черту вправо? спасибо –  Ryan Eckert 17.01.2013, 23:06
  • 2
    Да, отредактированный для фиксации. спасибо –  Dennis Kaarsemaker 17.01.2013, 23:17
  • 3
    за Ваш ответ. Я могу только выбрать тот, хотя и спутник было крошечно быстрее:) –  Ryan Eckert 17.01.2013, 23:26
  • 4
    Никакие заботы, используйте любой :) –  Dennis Kaarsemaker 17.01.2013, 23:27

Perl имеет хорошие расширения, чтобы сделать что-то как этот:

perl -pi -e 's;__esct\(\'([a-zA-Z ]*)\'\);\$this->escape\(\$this->translate\(\'\1\'));g'  list of the files to mangle

Это оставит оригиналы как <файл> .bak. Это - просто глобальная замена на каждой строке, так же, как Вы записали бы это в vi (1). В Perl, () и такой метасимволы, для соответствия им Вам нужно \(\).

[Я не на 100% уверен в обработке', должен проверить то, что Ваша конкретная оболочка делает в таком случае.]

-1
27.01.2020, 23:21

Теги

Похожие вопросы