Де розумна сідалка?


11

На Йосеміті. Сед старий: не розуміє, \tнаприклад. Я встановив coreutilsі не можу знайти жодного sedасоційованого з тим же.

Які тут мої варіанти?


4
Якщо ви запускаєте запас OS X sed з -Eопцією, він повинен прийняти \t. Детальну інформацію див. На re_formatсторінці чоловіка.
nwellnhof

Він повинен , але це не так. echo -e 'foo\tbar' | sed -E 's/\t/blah/'врожайність foo barна Маверикс 10.9.5.
Буде чи

Відповіді:


11

Вам потрібно встановити gnu-sed, а не лише основні програми:

brew install gnu-sed

Потім ви повинні додати наступні рядки на своєму .bash_profile:

export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/gnu-sed/libexec/gnuman:$MANPATH"

Тоді ваша sedверсія повинна бути останньою:

$ sed --version
sed (GNU sed) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bonzini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.

1
PATHВиписки вам не потрібні . Просто brew install gnu-sedі він буде доступний якgsed
neu242

1
У PATHвідомості дозволяє використовувати команду sedзамість gsed. Це не обов'язково, але вам не потрібно буде пам'ятати, щоб додати лист gдо своєї sedкоманди.
jherran

2
Звичайно. Але це може заважати програмам, які розраховують sedстати BSD sed. Я не знаю, чи це проблема, але я би сподівався, що це буде. (якщо osx, то bsdism)
neu242

alias sed=gsedу профілі, можливо?
Кролтан

9

Ваше запитання позначене тегами homebrew, але для тих читачів, які використовують MacPorts: Запустіть, sudo port install gsedщоб отримати sed GNU (доступно з gsedкомандою, аналогічно gfindв findutilsпорту).


5

Встановити фінк . Також вам знадобиться XCode, якщо ви його ще не отримали.

Потім встановіть останній sed (та безліч інших корисних речей) на зразок цього:

fink install sed


thx, я не був у курсі
фінку

2
Фінк стає досить старим. Я б рекомендував замість нього Homebrew .
neu242

2
@ neu242 Як "стара" проблема? Unix 45 років, і ми все ще ним користуємося. Сам Фінк - 6 років, достатньо довго, щоб випрасувати питання. Пакети Fink (та MacPorts) регулярно оновлюються.
Павло

@paul О, я просто ніколи не стикався з тим, хто використовував Fink протягом останніх 10 років. Приємно чути, що це все-таки корисно! :)
neu242
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.