Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Найти русские символы в txt файле  (Прочитано 1509 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Найти русские символы в txt файле
« : 16 Февраля 2017, 15:40:38 »
Здравствуйте.

Есть txt лог, в нем строчки - <Data Name='TargetUserName'>й</Data>

мне нужно найти все строки с >й< , поле >й< может быть любой длины. Дело в том, что если в этом поле латинские буквы то все находит, а вот с русскими никак. Ищу так
grep -E -o "<Data Name='TargetUserName'>[^[:space:]]+</Data>"

Проблема в том, что лог при открытии в ubuntu выглядит вот так <Data Name='TargetUserName'>▒▒▒▒▒▒▒▒▒▒▒▒▒</Data> т.е. вот такая заштрихованная штука.
На самом деле выглядит вот так <Data Name='TargetUserName'>СИСТЕМА</Data>

Как быть? Спасибо.


Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3032
    • Просмотр профиля
Re: Найти русские символы в txt файле
« Ответ #1 : 16 Февраля 2017, 20:52:02 »
А в какой кодировке этот файл и какая локаль?
Пётр.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Re: Найти русские символы в txt файле
« Ответ #2 : 17 Февраля 2017, 11:27:07 »
Peter_I, да, точно, кодировка). Сделал,
iconv -f WINDOWS-1251 -t UTF-8 -o log.tmp.txt log.txt
кодировка на самом деле charset=iso-8859-1, но если указывал ее то были кракозябры, а так работает.
Спасибо.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Найти русские символы в txt файле
« Ответ #3 : 17 Февраля 2017, 11:32:49 »
Вместо WINDOWS-1251 можно писать короче: CP1251
и дефолтную UTF-8 можно не указывать:
iconv -f CP1251 log.txt > log.tmp.txt

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Re: Найти русские символы в txt файле
« Ответ #4 : 17 Февраля 2017, 14:20:42 »
renzrv, да, так проще.
Спасибо.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Найти русские символы в txt файле
« Ответ #5 : 17 Февраля 2017, 16:25:44 »
И еще в файл можно не сохранять, если нужно только грепнуть:
iconv -f CP1251 log.txt | grep -E -o "<Data Name='TargetUserName'>[^[:space:]]+</Data>"

 

Страница сгенерирована за 0.031 секунд. Запросов: 25.