![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Регулярные выражения ПОМОЩЬ - PERL | maxmave | UNIX для чайников Вопросы И Ответы | 1 | 06-04-2008 01:15 PM |
| регулярные выражения | jack1981 | Shell программирование и сценарии | 4 | 07-12-2006 04:10 PM |
| Регулярные выражения | sandeep_hi | Shell программирование и сценарии | 6 | 06-12-2006 03:12 AM |
| Perl регулярные выражения ... | DrRo183 | Shell программирование и сценарии | 1 | 04-26-2006 10:28 PM |
| Регулярные выражения в SED | mfreemantle | UNIX для чайников Вопросы И Ответы | 3 | 02-11-2002 09:34 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Регулярные выражения ПОМОЩЬ - PERL
Здравствуйте, Код:
$line=USING (FILE '/TEST1/FILENAME'5000) Я хочу reterive стоимости между "а) 5000, которая здесь. Я старался выполнять следующие выражения ... Тип 1: $ var1 \u003d `SED -E 'S / .* \' / / '-E' S \ ).*$/' $ линия `; Тип 2: $ var1 \u003d `Эхо $ линия | AWK-F" \ ' "' (печати $ 2) '| AWK-F" \ \) "(печать $ 1)'`; Тип 3: $ var1 \u003d `Эхо $ линия | SED 'S / .* \' / / '| SED 'S / \ ).*$//'`; Тип 4: $ var1 \u003d `Эхо $ линия | SED 'S / .* \' / / '| SED 'S / \ )$//'`; Тип 5: $ var1 \u003d `Эхо $ линия | SED 'S / .* Файл / /' | SED 'S / Закрытие .*$//'`; Тип 6: $ var1 \u003d `Эхо $ линия | SED 'S / "/ / G' | SED 'S / \) / / G' | AWK-F "\ '"' (печати $ 2) ' `; Тип 7: $ var1 \u003d `SED 'S / .*' \ (.* \ )).*/ \ 1 / '$ линия `; но ничего не разрабатывает, я всегда получаю сообщение об ошибке, что Код:
sh: -c: line 0: syntax error near unexpected token `('
Любые предложения будут полезны Спасибо Rahul Последний раз редактировалось Йогеш Sawant; на 06-05-2008 04:56 AM.. Причина: добавлен код тегов |
|
||||
|
Код:
line="USING (FILE '/TEST1/FILENAME'5000)"
echo $line | awk -F\' '{split($3, a, /)/);print a[1]}'
5000
|
|
||||
|
Или, наконец, с Perl: Код:
if ($line =~ m/'(\d+)\)/) { $Var1=$1 }
Причиной вы получаете синтаксических ошибок заключается в том, что в backticks Perl будет проходить, какие документации называет "двойной quotish" расширения. По сути, это означает, что если вы хотите слеш должен быть принят к корпусу, то вам нужно в два раза, потому что Perl уже разбирает один уровень слэш. Кроме того, стоимость $ линия в настоящее время на интерполируются Perl, Так что оболочка видит буквальное значение Эхо ИСПОЛЬЗУЯ (FILE '/ TEST1/FILENAME'5000) без каких-либо квотирование, и жалуется на открытии скобках. Вы можете обойти это с надлежащей цитировать, но, конечно, для тривиального строка манипуляций, Perl сама реально намного лучше, чем корпуса. |
![]() |
| Закладки |
| Теги |
| Regex, регулярные выражения |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|