LINUX.ORG.RU

Отобрать строки, где «Ё» есть во всех полях

 ,


0

2

Доброго времени суток.
Есть файл вида

АвиасъЁмка;АвиасъЁмка;АвиасъЁмки;АвиасъЁмке;АвиасъЁмку;АвиасъЁмкой,АвиасъЁмкою;АвиасъЁмке;АвиасъЁмки;АвиасъЁмок;АвиасъЁмкам;АвиасъЁмки;АвиасъЁмками;АвиасъЁмках
АвтоподъЁмник;АвтоподъЁмник;АвтоподъЁмника;АвтоподъЁмнику;АвтоподъЁмник;АвтоподъЁмником;АвтоподъЁмнике;АвтоподъЁмники;АвтоподъЁмников;АвтоподъЁмникам;АвтоподъЁмники;АвтоподъЁмниками;АвтоподъЁмниках
Адрес-календАрь;Адрес-календАрь;Адрес-календарЯ;Адрес-календарЮ;Адрес-календАрь;Адрес-календарЁм;Адрес-календарЕ;Адрес-календарИ;Адрес-календарЕй;Адрес-календарЯм;Адрес-календарИ;Адрес-календарЯми;Адрес-календарЯх
аистЁнок;аистЁнок;аистЁнка;аистЁнку;аистЁнка;аистЁнком;аистЁнке;аистЯта;аистЯт;аистЯтам;аистЯт;аистЯтами;аистЯтах
актЁр;актЁр;актЁра;актЁру;актЁра;актЁром;актЁре;актЁры;актЁров;актЁрам;актЁров;актЁрами;актЁрах
блеснУть;блеснУть;блеснУл;блеснУла;блеснУло;блеснУли;-;-;-;-;-;-;блеснУ;блеснЁшь;блеснЁт;блеснЁм;блеснЁте;блеснУт;блеснИ;блеснИте;блеснЯ-;блеснУв,блеснУвши;блеснУщий-;блеснУщего-;блеснУщему-;блеснУщий-;блеснУщего-;блеснУщим-;блеснУщем-;блеснУщая-;блеснУщей-;блеснУщей-;блеснУщую-;блеснУщую-;блеснУщей-,блеснУщею-;блеснУщей-;блеснУщее-;блеснУщего-;блеснУщему-;блеснУщее-;блеснУщее-;блеснУщим-;блеснУщем-;блеснУщие-;блеснУщих-;блеснУщим-;блеснУщие-;блеснУщих-;блеснУщими-;блеснУщих-;блеснУщ-;блеснУща-;блеснУще-;блеснУщи-;блеснУвший;блеснУвшего;блеснУвшему;блеснУвший;блеснУвшего;блеснУвшим;блеснУвшем;блеснУвшая;блеснУвшей;блеснУвшей;блеснУвшую;блеснУвшую;блеснУвшей,блеснУвшею;блеснУвшей;блеснУвшее;блеснУвшего;блеснУвшему;блеснУвшее;блеснУвшее;блеснУвшим;блеснУвшем;блеснУвшие;блеснУвших;блеснУвшим;блеснУвшие;блеснУвших;блеснУвшими;блеснУвших;блеснУвш-;блеснУвша-;блеснУвше-;блеснУвши-;блеснОмый-;блеснОмого-;блеснОмому-;блеснОмый-;блеснОмого-;блеснОмым-;блеснОмом-;блеснОмая-;блеснОмой-;блеснОмой-;блеснОмую-;блеснОмую-;блеснОмой-,блеснОмою-;блеснОмой-;блеснОмое-;блеснОмого-;блеснОмому-;блеснОмое-;блеснОмое-;блеснОмым-;блеснОмом-;блеснОмые-;блеснОмых-;блеснОмым-;блеснОмые-;блеснОмых-;блеснОмыми-;блеснОмых-;блеснОм-;блеснОма-;блеснОмо-;блеснОмы-;блЕснутый-;блЕснутого-;блЕснутому-;блЕснутый-;блЕснутого-;блЕснутым-;блЕснутом-;блЕснутая-;блЕснутой-;блЕснутой-;блЕснутую-;блЕснутую-;блЕснутой-,блЕснутою-;блЕснутой-;блЕснутое-;блЕснутого-;блЕснутому-;блЕснутое-;блЕснутое-;блЕснутым-;блЕснутом-;блЕснутые-;блЕснутых-;блЕснутым-;блЕснутые-;блЕснутых-;блЕснутыми-;блЕснутых-;блЕснут-;блЕснута-;блЕснуто-;блЕснуты-

т.е. слова со всеми своими словоформами (выборка из словаря Зализняка) в которых так или иначе встречается буква ё. Словоформы разделены, как видно, точкой с запятой.
Задача отобрать те строки, в которых буква ё встречается во всех словоформах (т.е. во всех полях), и соответственно наоборот - там где не во всех.
Буду признателен если кто подскажет как это сделать используя консольные утилиты (sed или awk).

ps Хочу добавить поддержку буквы «ё» в словарь русской орфографии, который используется в Hunspell. Данный отбор позволит упростить написание правил для файла аффиксов.

Словоформы разделены, как видно, точкой с запятой.

не всегда: АвиасъЁмкой,АвиасъЁмкою

Задача отобрать те строки, в которых буква ё встречается во всех словоформах (т.е. во всех полях)

$ sed -rn 'h;s/\<\w*Ё\w*\>/☣/g;s/\<\w+\>/¨/g;/¨/b;g;p' t
АвиасъЁмка;АвиасъЁмка;АвиасъЁмки;АвиасъЁмке;АвиасъЁмку;АвиасъЁмкой,АвиасъЁмкою;АвиасъЁмке;АвиасъЁмки;АвиасъЁмок;АвиасъЁмкам;АвиасъЁмки;АвиасъЁмками;АвиасъЁмках
АвтоподъЁмник;АвтоподъЁмник;АвтоподъЁмника;АвтоподъЁмнику;АвтоподъЁмник;АвтоподъЁмником;АвтоподъЁмнике;АвтоподъЁмники;АвтоподъЁмников;АвтоподъЁмникам;АвтоподъЁмники;АвтоподъЁмниками;АвтоподъЁмниках
актЁр;актЁр;актЁра;актЁру;актЁра;актЁром;актЁре;актЁры;актЁров;актЁрам;актЁров;актЁрами;актЁрах

PS: можно было-бы и лучше, но мне лениво, да.

emulek
()
Последнее исправление: emulek (всего исправлений: 1)

Вот бы еще кто написал к aspell'у дополнение, которое бы латеховские вставки + латеховские команды игнорировало! А то задолбался уже жамкать I на всяких \hbox, а также словах с буквой Ē (типа Шр\"едингер) и ударениями (вроде компл\'ексный).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от emulek
$ sed -rn 'h;s/\<\w*Ё\w*\>/☣/g;s/\<\w+\>/¨/g;/¨/!b;g;p' t
Адрес-календАрь;Адрес-календАрь;Адрес-календарЯ;Адрес-календарЮ;Адрес-календАрь;Адрес-календарЁм;Адрес-календарЕ;Адрес-календарИ;Адрес-календарЕй;Адрес-календарЯм;Адрес-календарИ;Адрес-календарЯми;Адрес-календарЯх
аистЁнок;аистЁнок;аистЁнка;аистЁнку;аистЁнка;аистЁнком;аистЁнке;аистЯта;аистЯт;аистЯтам;аистЯт;аистЯтами;аистЯтах
блеснУть;блеснУть;блеснУл;блеснУла;блеснУло;блеснУли;-;-;-;-;-;-;блеснУ;блеснЁшь;блеснЁт;блеснЁм;блеснЁте;блеснУт;блеснИ;блеснИте;блеснЯ-;блеснУв,блеснУвши;блеснУщий-;блеснУщего-;блеснУщему-;блеснУщий-;блеснУщего-;блеснУщим-;блеснУщем-;блеснУщая-;блеснУщей-;блеснУщей-;блеснУщую-;блеснУщую-;блеснУщей-,блеснУщею-;блеснУщей-;блеснУщее-;блеснУщего-;блеснУщему-;блеснУщее-;блеснУщее-;блеснУщим-;блеснУщем-;блеснУщие-;блеснУщих-;блеснУщим-;блеснУщие-;блеснУщих-;блеснУщими-;блеснУщих-;блеснУщ-;блеснУща-;блеснУще-;блеснУщи-;блеснУвший;блеснУвшего;блеснУвшему;блеснУвший;блеснУвшего;блеснУвшим;блеснУвшем;блеснУвшая;блеснУвшей;блеснУвшей;блеснУвшую;блеснУвшую;блеснУвшей,блеснУвшею;блеснУвшей;блеснУвшее;блеснУвшего;блеснУвшему;блеснУвшее;блеснУвшее;блеснУвшим;блеснУвшем;блеснУвшие;блеснУвших;блеснУвшим;блеснУвшие;блеснУвших;блеснУвшими;блеснУвших;блеснУвш-;блеснУвша-;блеснУвше-;блеснУвши-;блеснОмый-;блеснОмого-;блеснОмому-;блеснОмый-;блеснОмого-;блеснОмым-;блеснОмом-;блеснОмая-;блеснОмой-;блеснОмой-;блеснОмую-;блеснОмую-;блеснОмой-,блеснОмою-;блеснОмой-;блеснОмое-;блеснОмого-;блеснОмому-;блеснОмое-;блеснОмое-;блеснОмым-;блеснОмом-;блеснОмые-;блеснОмых-;блеснОмым-;блеснОмые-;блеснОмых-;блеснОмыми-;блеснОмых-;блеснОм-;блеснОма-;блеснОмо-;блеснОмы-;блЕснутый-;блЕснутого-;блЕснутому-;блЕснутый-;блЕснутого-;блЕснутым-;блЕснутом-;блЕснутая-;блЕснутой-;блЕснутой-;блЕснутую-;блЕснутую-;блЕснутой-,блЕснутою-;блЕснутой-;блЕснутое-;блЕснутого-;блЕснутому-;блЕснутое-;блЕснутое-;блЕснутым-;блЕснутом-;блЕснутые-;блЕснутых-;блЕснутым-;блЕснутые-;блЕснутых-;блЕснутыми-;блЕснутых-;блЕснут-;блЕснута-;блЕснуто-;блЕснуты-

там, где не во всех

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

чудеса юникода, у меня фаирфокс показывает символ биологической опасности в месте между w*\>/ и /g;

это не баг, а фича.

Суть скрипта в том, что он меняет все слова с «Ё» на «☣», а без «Ё» на «¨».

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

не всегда: АвиасъЁмкой,АвиасъЁмкою

Ах, да, запятой отделены разные варианты одной и тойже словоформы, т.е. и так и так правильно.

emulek, спасибо!

sspphheerraa
() автор топика

всем питона котаны

> cat yo.py                                          
#!/usr/bin/python
 # -*- coding: utf-8 -*-
import sys
for line in sys.stdin:
    if all(['Ё' in word  for word in line.split(';')]):
        print line,

> echo 'еЁ;ЙоЁ\nеЯ;яЁ\nеж\nЁж' | ./yo.py
еЁ;ЙоЁ
Ёж
zolden ★★★★★
()
Ответ на: комментарий от Waterlaz

А при чем тут utf?

а почему Эдди не может написать «Э́рвин Ру́дольф Йо́зеф Алекса́ндр Шрё́дингер (нем. Erwin Rudolf Josef Alexander Schrödinger; МФА: [ˈɛrviːn ˈʃrøːdɪŋɐ])»? У меня вот никаких проблем с написанием, и с проверкой орфографии.

emulek
()

«ё» - Это атавизм. Только глаза мозолит, когда ее видишь. Более того, никто бы не пользовался «ё», если на этой же клавише не висела тильда.

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

«ё» - Это атавизм. Только глаза мозолит, когда ее видишь. Более того, никто бы не пользовался «ё», если на этой же клавише не висела тильда.

У меня «ё» в нижнем ряду на слеше. Вот так: тьбюё.

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

а почему Эдди не может написать «Э́рвин Ру́дольф Йо́зеф Алекса́ндр Шрё́дингер (нем. Erwin Rudolf Josef Alexander Schrödinger; МФА: [ˈɛrviːn ˈʃrøːdɪŋɐ])»? У меня вот никаких проблем с написанием, и с проверкой орфографии.

Потому что TeX не съест такое?

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

У меня и в русской раскладке на этой клавише тильда и апостроф. Все равно ведь буква Ē нужна так редко, что в тех случаях можно и командную последовательность ввести.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от emulek

Ну серьезно ведь, даже в учебниках по литературе такой буквы нет. Но так то да, на исключительно верной мнение я не претендую. Да и в «поле чудес» тоже «е» катит за две буквы. Что показывает, что даже «официально правильному мнению», без разницы на данную букву. Другое дело, что детям объяснять и показывать надо, тем более на данную букву столько много характерно ярких слов. Да, что там говорить, даже на диктантах, «ё» не используют. (Ежегодный диктант похоже исключение, насколько помню, там было одно задание, на выбор где предлагалось «ё»).
Да и если так подумать, то кроме слова ёлка, и на данную букву толком слов и нет. Русский и так перегружен, нечего в него всякое тащитъ. И да спеллчек с «ё» просто будет подчеркивать половину рунета.

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

Да и если так подумать, то кроме слова ёлка, и на данную букву толком слов и нет

Не согласен с тобой Ёда учитель

zolden ★★★★★
()
Ответ на: комментарий от yoghurt
BEGIN {FS = ';'}
      { с = 0
        for (i = 1; i <= NF; i++) { if ($i ~ 'ё') с++ }
        if (c == NF) print
      }

Перечитал условия, вот так надо

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

Ну серьезно ведь, даже в учебниках по литературе такой буквы нет.

мне сделать фотографию учебника моего сына, с буквой «ё»?

в «поле чудес»

это конечно весомый аргумент.

Что показывает, что даже «официально правильному мнению», без разницы на данную букву.

букву «ё» _допустимо_ меня на «е», например если твой говнопланшет «ё» не может.

Да и если так подумать, то кроме слова ёлка, и на данную букву толком слов и нет.

первый пост посмотри.

Русский и так перегружен, нечего в него всякое тащитъ.

это не тебе решать.

И да спеллчек с «ё» просто будет подчеркивать половину рунета.

УМВР.

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

Зато понятно и поддерживаемо, а от твоего говна сивольного только в глазах рябит.

вопрос в практике. Я китайского языка тоже не понимаю. Это не повод говорить, что «китайский — говно».

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

атавизм - это твёрдый знак. целый символ ТОЛЬКО для того, чтобы отделять приставку от корня.

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

И да спеллчек с «ё» просто будет подчеркивать половину рунета.

Культура формирует язык. Язык влияет на культуру.

Спрос рождает предложение. Предложение формирует спрос.

Capisce?

//не фанатик йо

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

Кстати говоря, оно давно уже есть: https://launchpad.net/~andrew-crew-kuznetsov/ archive/ubuntu/xneur-stable (hunspell-ru-ie-yo)
https://addons.mozilla.org/ja/firefox/addon/russian-hunspell-dictionary/
http://slavenica.com/
Но работает оно как я и сказал выше, предлогаю исправлять все слова с «е» на написание с «ё». А если кому-то и нужна поддержка «ё» то более правильным будет вариант, считать и вариант с «е» и с «ё» корректным, чтобы не подчеркивать два каждое слово с «е».
И да в настройках Language Tool для LO/OO есть выбор, использовать «ё» или нет. Но насколько я помню.

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

Да и если так подумать, то кроме слова ёлка, и на данную букву толком слов и нет. Русский и так перегружен, нечего в него всякое тащитъ.

Убирание буквы «ё» заставит запоминать кучу исключений, когда «е» даёт нестандартный звук. А чем больше правил и исключений из них, тем хуже язык (язык - это средство передачи информации, оно должно быть простым, понятным и эффективным). Русский язык и так достаточно сложный (конечно, есть вещи похуже типа китайского и японского), зачем делать ещё немного сложнее.

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

А точка и запятая тогда где?

На цифре 6 — запятая, на цифре 7 — точка. Набираются без шифта. Цифры набираются с шифтом.

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

«ё» - Это атавизм. Только глаза мозолит, когда ее видишь.

зато когда слышишь - сразу понятно

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