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


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

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

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

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

  • Автор темы
  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Найти русские символы в txt файле
« : 16 Февраль 2017, 16: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

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

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

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

Оффлайн renzrv

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

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

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

Оффлайн renzrv

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

 

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