2009-05-24 4 views
0

Есть ли разница в регулярных выражениях в Linux и на HPUX?Регулярные выражения в Linux/HPUX

Я использую их в sed.

Я пытаюсь следующее, который работает только на Linux:

SED -e "S/^ \ S муравей \ S $/# муравей/г" Makefile

сейчас Я вижу, что если я удалю «^», то он тоже будет работать на HP. Насколько я понимаю, это должно поддерживаться обоими.

ответ

2

Где вы? В sed? На некоторых скриптовых языках (скажем, perl)? Где-нибудь еще? Вопрос неясен. Вы должны опубликовать свое текущее регулярное выражение, или лучше, например, сценарий/ввод/вывод. Во всяком случае, \s, я думаю, означает `whitespace ', и это определяется локалью и, возможно, другими факторами.

+0

да, используя sed. – 2009-05-24 20:54:14

+0

Ваш вход пожалуйста? И фактическое регулярное выражение? Во всяком случае, это, скорее всего, обычная вещь. Вы можете попробовать использовать [: space:] вместо \ s. – shylent

1

Короткий ответ: «Да, возможно, есть разница».

Длинный ответ:

Это зависит от того, какой версии СЭД вы используете на каждую машину, а не то, что операционная система машина работает.

По моему опыту я обнаружил, что набор инструментов (то есть sed, grep, awk и т. Д.), Установленный на подобных HP-UX, часто уступает версиям, найденным в большинстве популярных дистрибутивов Linux.

Я полагаю, что на HP-UX вы используете версию sed, созданную HP, и вы используете GNU sed в Linux. Вам также нужно будет прочитать, что версия HP может или не может сделать, и найти общий язык с вашей версией в Linux, или посмотреть, можете ли вы установить версию GNU где-то на вашей машине HP.

Что касается специального регулярного выражения, которое вы даете, как и при любой проблеме с регулярным выражением, это поможет, если вы также дадите примерный текст, чтобы соответствовать, и указали, что вы ожидаете от регулярного выражения.

Смежные вопросы