2013-04-13 1 views
2

Я использую W7 64bit, и я только что установил клубнику perl. Мне нужно, чтобы выполнить простой скрипт из командной строки окна для манипулирования текстовых файлов:perl beginner on windows - проблемы с выполнением perl -n -e в командной строке Windows

perl -ne 'chomp; print "$_ O O O O\n"' test.txt > textformatted.txt 

Я получаю сообщение об ошибке:

Can't find string terminator "'" anywhere before EOF at -e line 1. 

Это в PATH, а также я могу назвать perl -v. Я попытался добавить пробелы, заменив ' на ", обратную косую черту и т. Д., Но не использовать.

Я смотрел учебники и искал в Интернете, и я нашел много таких утверждений, поэтому кажется, что это утверждение должно работать. Но это не так.

Может кто-нибудь, пожалуйста, помогите мне? Где ошибка?

ответ

3

Вам нужно изменить свои одинарные кавычки на двойные кавычки.

perl -ne "chomp; print qq($_ O O O O\n)" test.txt > textformatted.txt 
+0

Спасибо! Поэтому я всегда могу поставить qq() на материал, который должен быть под кавычками? – user2277690

+0

Да. Поскольку оболочка (т. Е. Cmd.exe) использует двойные кавычки для ее цитирования, вам нужно использовать qq (..) или heredoc, когда вам нужна двойная кавычка string var интерполяция в oneliners. –