sample_file:Поиск и замена Однострочник сохранить символы новой строки
this is a test line!
this is a test line!
this is a test line!
this is a test line!
Я использую Perl Однострочник, чтобы заменить текст, как это:
perl -pi -e 's{this(.*)\s}{\n\1\n}i && s{.*\n}{}' sample_file
В this(.*)\s
часть и \1
часть являются переменная, и я не могу ее изменить (она поступает от пользовательского ввода).
Моя проблема в том, что мне нужно отрегулировать часть {\n\1\n}
в зависимости от того, включает ли первое регулярное выражение символ новой строки.
Например, если первое регулярное выражение {this(.*)\s}
мне нужно {\n\1\n}
, но если первый, как {(.*)a test}
мне нужно {\n\1}
.
Как я могу проверить, потерян ли символ новой строки и, если необходимо, вернуть его обратно?
Это не сработает в первую очередь - '-pi' приведет к тому, что ваша вещь будет итерации по очереди в любом случае. – Sobrique
Вы начинаете с неправильного места, и ваш вопрос вводит в заблуждение. Я предлагаю вам задать другой вопрос, показывая, что вы попробовали, и описать преобразование, которое вы хотите применить к вашему файлу. – Borodin
Вы действительно не должны просить своих пользователей вводить шаблоны регулярных выражений! – Borodin