Как я могу использовать средства командной строки Mac OS X (и UNIX), такие как grep с файлами UTF-16?


Как я могу использовать средства командной строки Mac OS X (и UNIX), такие как grep с файлами UTF-16?

29.01.2011 12:38:46 Просмотров 81 Источник

У меня есть куча текстовых файлов, которые я хочу использовать с grep. Все они взяты из внешнего источника, закодированы в кодировке UTF-16 и начинаются с метки порядка байтов.

Инструменты Unix, такие как grep, не работают на них для меня. Какой обходной путь существует для этого?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/4836135/how-can-i-use-mac-os-x-and-unix-command-line-tools-like-grep-with-utf-16-files#comment5368344_4836135
@Bavarious, я попробовал ваше предложение, но оно не сработало

Ответы - Как я могу использовать средства командной строки Mac OS X (и UNIX), такие как grep с файлами UTF-16? / How can I use Mac OS X (and UNIX) command line tools like grep with UTF-16 files?

DigitalRoss

29.01.2011 12:41:53

Просто используйте iconv(1), чтобы изменить их на utf-8.

Dr. Alex RE

22.01.2020 11:55:40

Mac OS X поставляется со старой версией BSD grep из коробки, которая ограничена и очень медленная. Однако и BSD, и GNU grep не обрабатывают файлы UTF-16. Другие инструменты grep, такие как ag , rg и ugrep (новый универсальный инструмент grep), предназначены для поддержки файлов Unicode и UTF. Из этих трех, ugrep ближе к GNU grep, так что нет большой кривой обучения, чтобы использовать его в качестве замены grep.

Если ваши файлы содержат метки порядка байтов UTF, то нет необходимости преобразовывать их для поиска с помощью ag, rg или ugrep.

Для поиска файлов без меток порядка байтов требуется флаг, например -Qс ugrep:

ugrep -QUTF-16 "PATTERN" FILE
Помочь в развитии проекта:
Закрыть X