2014-11-03 3 views
0

Правильно ли я предполагаю, что repl.bat не будет работать, если я пытаюсь выполнить поиск & заменить для шаблона, длина которого может составлять 3-4 строки?Использование "repl.bat"

Всякий раз, когда я пытаюсь использовать '/ s', '/ n' или что-либо, чтобы продолжить поиск шаблонов на следующей строке, он вообще не может найти какой-либо шаблон.

например. В ПОИСКАХ следующей схеме

for i in range(60): 
     try: 
      if self.is_element_present(By.CSS_SELECTOR, "div[id=Navigation] ul[id=mainNav] a[href='/DataValues/']"): break 
     except: pass 
     time.sleep(1) 
    else: self.fail("time out") 

Так что, когда я пытаюсь: type file.py | repl "\sfor i in range\(60\)\:" "cookie" file.py.new

... чтобы представить первую строку, она будет успешно найти первую строку.

Однако если добавить «\ п» или «\ S», чтобы продолжить поиск по шаблону мимо первой линии:

** type file.py | repl "\sfor i in range\(60\)\:\stry" "cookie" file.py.new ** 

... он не нашел ничего, и никаких изменений не производится. Я пробовал разные комбинации \ n и \ s &, результаты всегда одинаковы. Спасибо заранее за вашу помощь!

+2

Где 'repl.bat' взялось? – mojo

+0

Мои извинения (https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat). – rwbyrd

+0

Ниже приведено [оригинальное сообщение REPL.BAT] (http://www.dostips.com/forum/viewtopic.php?f=3&t=3855), а вот [самая ранняя запись StackOverflow] (http: // stackoverflow .com/a/16735079/1012053) – dbenham

ответ

1

Прочитайте документацию более тщательно. Вам нужна опция M, чтобы иметь возможность сопоставлять несколько строк.

Например, при test.txt

red 
+ 
blue 

Тогда

type test.txt | repl "red\s*\+\s*blue" "purple" m 

дает

purple 
+0

Yikes, я чувствую себя немым. Это была не моя проблема, но как только я получил это, я смог выяснить все остальное. Спасибо чувак. – rwbyrd

+0

Есть ли вероятность, что вы, возможно, знаете, как получить этот же процесс, чтобы увидеть двойные кавычки в поиске? Я попытался использовать '\' 'и' '"' безрезультатно. – rwbyrd

+0

@RichieByrd - В встроенном справочном документе doc: Вариант 1) используйте шестнадцатеричную escape-последовательность' \ x22'. Вариант 2) используйте '\ q 'с опцией X. – dbenham

Смежные вопросы