Канал к grep, не работающему в zsh

Я делаю что-то, что я всегда делаю в Bash:

set | grep -i path 

и вывод

Binary file (standard input) matches

Что случилось? grep --help работы, и set | more работы также.

4
задан 17.05.2010, 16:45

2 ответа

Я не уверен, что продолжается, но можно передать -a отметьте к grep, чтобы вынудить это рассматривать свой вход как текст, независимо от того, что это думает, что это.

2
ответ дан 07.12.2019, 19:12

Сделайте это:

set > /tmp/zshset

Затем открытый /tmp/zshset в Вашем любимом редакторе. Искать IFS.

Значение по умолчанию для этого, на zshparam страница справочника, пространство по умолчанию, вкладка, новая строка и NUL. Этот последний доставляет неприятности. grep видит NUL (ASCII 0, отображаемый часто как ^@) и думает, что это - двоичный файл.

Возможные решения:

  • Установите IFS на некоторое другое значение. Это могло бы вызвать проблемы, если что-то еще, что Вы делаете, ожидает, что NUL является допустимым разделителем.
  • Использовать grep -a как предложено KeithB (или его эквивалент --binary-files=text)
  • Создайте новый псевдоним для себя, которые используют grep -a сохранить себя определенный ввод
  • Адаптируйтесь к рассмотрению Вашего ПУТИ через другие средства (например. env | grep -i path, echo $PATH) - Я думаю, что другие решения просты
12
ответ дан 07.12.2019, 19:12

Теги

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