LINUX.ORG.RU

iconv -f cp1251 -t utf8 <file_name> | grep
kostik87 ★★★★★
()

сгенерить локаль cp1251
запускать LANG=ru_RU.cp1251 grep …

проблемка в том, што, емнип в glibc нет локали cp1251
но на случай других кодировок пойдёт

anonymous
()
Ответ на: комментарий от anonymous

вобщем мне нужно искать по содержимому .php файлов коих пару тысяч
они в кодировке cp1251
как это сделать оптимальным способом?

h0lder
() автор топика
Ответ на: комментарий от h0lder

мб и не надо ничего делать, если искать латиницу?

$ echo asdfйцук |iconv -t cp1251 |grep йцук
$ echo asdfйцук |iconv -t cp1251 |grep asdf
asdf���

anonymous
()
Ответ на: комментарий от h0lder

Запускать в корневой директории, откуда начинается поиск. Команда, по-идее, рекурсивно обойдёт все файлы во всех вложенных директориях и выдаст строки в файлах, в которых встречается искомое слово.

Образно говоря, у тебя структура каталогов:

/home/user/dir1/dir2/dir3/dir4/dir5..

Тебе нужно начать искать в dir3 и всех вложенных каталогах.

Переходишь:

cd /home/user/dir1/dir2/dir3/

и запускаешь команду.

Bod ★★★★
()
Ответ на: комментарий от h0lder

Ты команду точно набрал? Попробуй её просто скопипастить в командную строку, заменив лишь «слово» на слово, которое ты ищешь.

К слову, локаль у тебя какая?

Bod ★★★★
()
Ответ на: комментарий от Bod

Команду скопировал точно.

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE=«ru_RU.UTF-8»
LC_NUMERIC=«ru_RU.UTF-8»
LC_TIME=«ru_RU.UTF-8»
LC_COLLATE=«ru_RU.UTF-8»
LC_MONETARY=«ru_RU.UTF-8»
LC_MESSAGES=«ru_RU.UTF-8»
LC_PAPER=«ru_RU.UTF-8»
LC_NAME=«ru_RU.UTF-8»
LC_ADDRESS=«ru_RU.UTF-8»
LC_TELEPHONE=«ru_RU.UTF-8»
LC_MEASUREMENT=«ru_RU.UTF-8»
LC_IDENTIFICATION=«ru_RU.UTF-8»
LC_ALL=

h0lder
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.