Я пытаюсь grep
строку из файла, но grep ничего не возвращает (даже если строка присутствует в файле). Оказалось, что файл начинается с отметки ÿþ
. Если я удалю его вручную, то grep будет работать. Как заставить работать grep, не удаляя спецификацию вручную?
grep не работает с спецификацией
Ответы (2)
Как насчет:
strings <file> | grep <pattern>
В качестве альтернативы проверьте страницу руководства вашей grep
команды. На самом деле происходит следующее: grep
просматривает первые несколько байтов вашего файла и решает, что это двоичный файл и, следовательно, недоступен для поиска. Вы можете переопределить это с помощью:
--binary-files=text
person
Benj
schedule
15.10.2013
Предостережение: файлы могут быть закодированы в UTF-16 (-получены из системы Windows?). Тогда grep (и другие методы) не будут работать с многосимвольными шаблонами ascii, даже если спецификация будет удалена.
- person rhoerbe; 27.10.2017
Вы также можете использовать cat с параметром -v (visible):
cat -v file | grep pattern
person
Cole Tierney
schedule
15.10.2013
grep
. - person fedorqui 'SO stop harming'   schedule 15.10.2013I am trying to grep a string from a file but grep returns nothing
. - person anubhava   schedule 22.10.2013sed '1s/^\xEF\xBB\xBF//'
, которого должно быть достаточно, чтобы сообщить OP, какgrep
- person anubhava   schedule 23.10.2013