Я бегу что-то в Perl и следующая команда, которая удаляет последовательные повторяющиеся строки (только держа одну из них)Выбираясь в Баш в Perl
system("sed -i '$!N; /^\(.*\)\n\1$/!p; d' *[13579].csv");
Однако, когда я запускаю это, я получить следующее сообщение об ошибке:
sed: -e expression #1, char 11: unterminated address regex
у меня есть чувство, что это имеет отношение к моему побегу, но я не слишком уверен, как я довольно неопытный с Perl и Башем. Я знаю, что знаки доллара должны быть сбежаны, но как насчет обратных косых черт? У кого-нибудь есть хороший ресурс, который они могут указать мне, чтобы узнать больше об ускорении bash в perl? Благодаря!
Escape the slashes \ – mkHun
@mkHun Не все из них правы - в настоящее время он выглядит так: 'system (" sed -i '\ $! N;/^ \\ (. * \\) \\ n \\ 1 \ $ /! P; d '* [13579] .csv ")'. Правильно ли это выглядит? – JDY
Если вам нужно избегать вещей, вы делаете это неправильно: если вы запустите программу ('sed', в этом случае), используя' exec''ing массив argv, оболочки нет, поэтому ничего не должно быть скорлупа маскирование. Да, это означает, что вы не получаете globbing, но perl может делать подталкивание. –