Обновление: Обратите внимание, что этот ответ с 2013, он относится к FreeBSD 8.x и ранее. BSD grep был добавлен в пересмотре 222273 и появился в FreeBSD-9.0 (странно, что изменение отсутствует в обычно всесторонней информации о версии: поиск Google). Полнофункциональный GNU grep продолжает быть доступным в наборе портов.
FreeBSD grep
был GNU grep
, хотя старый и с несколькими примененными патчами:
# which grep
/usr/bin/grep
# /usr/bin/grep -V
grep (GNU grep) 2.5.1-FreeBSD
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.
Это имеет небольшое количество патчей (большинство которых порождает из Fedora Linux), если Вы имеете /usr/src/
установленный они детализированы в /usr/src/gnu/usr.bin/grep/FREEBSD-upgrade
.
При необходимости в чем-то конкретно в версии порта (2.12 по сравнению с 2.5.1) существует много bugfixes, улучшения скорости и поддержка PCRE (-P
, не включенный в версии системы), должно быть довольно безопасно переупорядочить Ваш PATH
помещать /usr/local/bin
во-первых, это - то, что я обычно делаю. (Это - хорошая практика для использования su -
так, чтобы среда корня была установлена правильно, хотя на FreeBSD значение по умолчанию ~root/.cshrc
наборы PATH
явно.)
Иначе проверьте свою страницу справочника оболочки и установите alias
как требуется, но это действительно только для интерактивного использования, сценарии оболочки или Make-файлы не будут наблюдать его.
Руководящий принцип 3: Каждое имя опции должно содержать один буквенно-цифровой символ (алфавит[113591]). классификация символов) из портативного набора символов. -W (капитальный вариант-W) должен быть зарезервирован за опциями поставщика.
# hwclock --systohc
Многозначные опции не должны допускаться.
# hwclock --hctosys
Двойная тире [113345]- это конвенция GNU[113346].
В определении POSIX[113347]find[113348] "длинные переключатели" с одинарной тире не являются частью опций, а представляют собой выражение, данное в качестве операнда.[112939].
find[113328] кажется исключением из правила. Фактически [113329] find[113330] возникло вне группы разработчиков исходных утилит для Unix, отсюда и несоответствующий способ использования "длинных" опций.
Так часто стандартизация происходила только после того, как использование коротких и длинных опций стало обычной практикой в [113331]большинстве[113332] программ, и отчасти потому, что стали доступны некоторые подпрограммы или библиотеки для выполнения разбора опций (тем самым навязывая какой-то неявный стандарт). Но, конечно, в то время было слишком поздно изменять [113333] существующие [113334] программы, такие, как [113335] находят [113336], таким образом, чтобы не нарушать сценарии. Совместимость с POSIX, с двойными тире, менее важна, чем не нарушать эти скрипты.
Обратная совместимость, например, также является причиной того, что короткие опции для [113337]tar[113338] могут быть заданы с тире или без него.[112925].