![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Perl скрипт для проверки задней линии | gholdbhurg | Shell программирование и сценарии | 3 | 03-18-2008 12:33 PM |
| Справка: Справка WebObjects 5.4.1 | iBot | UNIX и Linux RSS Новости | 0 | 03-11-2008 09:50 PM |
| Буфер обмена Модификатор 0.2.0 (по умолчанию филиала) | iBot | Релизов программ - RSS Новости | 0 | 01-02-2008 05:00 PM |
| Вернуться ссылкой ошибке | apoorvasharma80 | Shell программирование и сценарии | 4 | 08-22-2006 11:25 AM |
| Справка двухмерного массива в Perl к югу | Фотон | Shell программирование и сценарии | 5 | 04-16-2003 05:52 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Perl: Вернувшись из ссылки с модификатором
Моя ввода текста имеет следующие pattens: Код:
func_a(3,
4,
5);
Я хотел бы заменить его следующим образом: Код:
func_b(3,
4,
5,
6);
Я пытаюсь следующие слова, но она не работает: Код:
perl -p -e "s/func_a\((.*)?\);/func_b(\1,\n6)/s" < file |more Любые идеи? Спасибо. |
|
||||
|
использовать $ 1 и $ 6 вместо \ 1 и \ 6, видеть, если это помогает. Используйте одиночные кавычки вокруг кода, если вы находитесь на окнах.
|
|
||||
|
Спасибо, но это не работает. Кстати, я не с помощью \ 6, а \ N6.
|
|
||||
|
Используйте $ 1, \ 1
Изменить команду как ниже ... Perl -П-Е ", с / func_a \ ((.*)? \); / func_b \ ($ 1, \ N6 \); / S" <файл | подробнее |
|
||||
|
Да, я использовал $ 1, \ 1. Я думаю, Вы не почувствуете никакой разницы. Когда я моделях, которые не имеют новых линий в них, такие, как: Код:
func_a(3); Ведение Код:
perl -p -e "s/func_a\((.*)?\);/func_b($1,\n6)/s" < file |more работает, как ожидалось. |
|
||||
|
Проблема заключается в том, что с Perl -P, вы только чтение и изучение линии одновременно. Таким образом, структура матча не применяются ни к чему, которые straddles линии границы, даже если у вас есть / с модификатором. Вы можете решить, что, прочитав все линии сразу, с Perl -0777 Или что-то эквивалентное.
См. также Perl Вопросы, которые подробно обсудить эту тему. |
|
||||
|
Perl следует дали мне ошибку / предупреждение, потому что с модификатором не применяется к-р. Во всяком случае, вот то, что я попробовал, но на этот раз я ничего не получит выдавали: Код:
perl -e -0777 "s/func_a\((.*)?\);/func_b(\1,\n6)/s" < file |more и Код:
perl -e "BEGIN {$/=undef} s/func_a\((.*)?\);/func_b(\1,\n6)/s"
|
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|