sed + не працює на solaris


1

Я намагаюся використовувати sedрядок з a +на машині Solaris і на машині Linux.

на Solaris sed не видаляє рядки до першого числа, як я хочу:

   solaris:/ ROOT > echo "Release............5.3.7.1-12"  | sed 's/[^0-9]\+//'

   Release............5.3.7.1-12

в Linux я отримую очікувані результати:

  linux tmp]# echo "Linux Release............5.3.7.1-12"  | sed 's/[^0-9]\+//'

  5.3.7.1-12
  • Чому цей синтаксис sed не працює на Solaris?

  • Що потрібно змінити в синтаксисі, щоб він працював на Solaris?

Відповіді:


0

Зазвичай уникнення +символу ( \+) призводить до буквального +, а не до модифікатора. Це не так у sedUbuntu 10.04, але це може бути не в Solaris.

Я найкраще здогадуюсь, що це конкретно для впровадження, тому sed 's/[^0-9]\+//'може спрацювати.

Ви також можете спробувати sed -r 's/[^0-9]\+//'(де -rозначає розширені регулярні вирази ). Він працює на Ubuntu 10.04.


1
це не здається правильним - це просто те, що sedis solaris не підтримує "+". це ж запитання того ж автора тут, здається, має більше інформації: serverfault.com/questions/348490/sed-not-work-on-solaris
Richlv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.