Регулярные выражения в Linux / HPUX - PullRequest
0 голосов
/ 25 мая 2009

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

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

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

sed -e "s / ^ \ s ant \ s $ / # ant / g" Makefile

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

Ответы [ 2 ]

2 голосов
/ 25 мая 2009

Где вы их используете? В седе? На каком скриптовом языке (скажем, Perl)? Где-нибудь еще? Вопрос неясен. Вы должны опубликовать свое реальное регулярное выражение или, лучше, пример script / input / output. В любом случае, \s, я полагаю, означает «пробел», и это определяется локалью и, возможно, другими факторами.

1 голос
/ 30 сентября 2009

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...