Почему grep-o-w не дающий мне ожидаемый вывод на Mac OS X?

Можно проверить это довольно легкое с вещами как

Сравните вывод от

sudo env 
env

И вещи как

sudo whoami 
whoami

Тем путем можно попытаться узнать то, что отсутствует в установке.

4
21.08.2011, 02:50
4 ответа

Существует обходное решение при помощи grep синтаксис regex для соответствия пустой строке вначале и концу слова!

# grep regex syntax for matching words only
man grep | less -p '\<'

# POSIX 1003.2 regular expression syntax for matching words only
# should work for sed, ed, ...
man re_format | less -p '\[\[:<:\]\]'

echo 'foo bar baz' | egrep -o '\<baz\>'

echo 'foo bar baz' | sed -n '/.*[[:<:]]\(baz\)[[:>:]].*/s//\1/p'

Если Вы настаиваете на том, чтобы использовать grep -w флаг, попробуйте предварительно скомпилированный Rudix 2010 grep двоичный файл (grep-2.5.4-1.dmg).

http://rudix.org/packages-ghi.html#grep

2
27.01.2020, 21:00

Походит на ошибку мне. Если Вы не возражаете использовать grep от macports (v 2.9) это ведет себя способ, которым Вы ожидаете.

2.5.1 кажется, далеко от последнего выпуска, но я предполагаю, что Вы могли попытаться заполнить ошибку Apple.

0
27.01.2020, 21:00
  • 1
    Прежде, чем сообщить об ошибке к GNU, необходимо проверить, имеют ли более поздние версии и скомпилированные в дом двоичные файлы ту же проблему. Я сомневаюсь, что GNU ценил бы отчет об ошибках, если бы проблема оказалась способом, которым Apple создала двоичный файл, или если проблема была устранена давным-давно. –  Gilles 'SO- stop being evil' 21.08.2011, 04:21

Кроме того, Вы могли установить более новую версию GNU grep через Домашнее пиво:

brew tap homebrew/dupes; brew install homebrew/dupes/grep

Затем сделайте следующее:

$ echo foo bar baz | /usr/local/bin/ggrep -o -w baz
baz
0
27.01.2020, 21:00
  • 1
    я, вероятно, получил бы его от macports вместо этого, если мне действительно был нужен он. –  Tyilo 02.12.2012, 19:45

В 10,8, /usr/bin/grep был заменен другой версией grep, который, кажется, не имеет ту проблему:

$ echo foo bar baz | grep -o -w baz
baz
$ grep -V
grep (BSD grep) 2.5.1-FreeBSD

10.7:

$ echo foo bar baz | grep -o -w baz
foo bar baz

$ grep -V
grep (GNU grep) 2.5.1

Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
0
27.01.2020, 21:00

Теги

Похожие вопросы