Perl -pi -e синтаксис с |или же - PullRequest
2 голосов
/ 02 марта 2011

Если я хочу заменить все случаи foo на bar, я просто делаю это.

perl -pi -e 's/foo/bar/gi' /home/smith/myfile.txt

Что если я только хочу заменить | foo |с | бар |?

Смежный вопрос. Что если я хочу заменить только> foo <на> bar <? </p>

Ответы [ 3 ]

3 голосов
/ 02 марта 2011

Вы должны убежать от |символ:

perl -pi -e 's/\|foo\|/\|bar\|/gi' /home/smith/myfile.txt

3 голосов
/ 02 марта 2011

Попробуйте:

perl-pi -e 's/\Q|foo|\E/|bar|gi' /home/smith/myfile.txt

См. perldoc perlre и найдите /Escape sequences/.

1 голос
/ 02 марта 2011

Вам просто нужно использовать правильное цитирование. С кавычками вы довольно безопасно делать то, что вы хотите. За исключением вещей, связанных с символами регулярного выражения, такими как '|'. так стало бы так:

perl -pi -e 's/\|foo\|/|bar|/gi' /home/smith/myfile.txt

Примеры> foo <проще, потому что они не являются символами регулярного выражения. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...