1 (10.01.2014 15:53:46 отредактировано ПОП)

Доброго дня, всем!
Есть папка со словарями/энциклопедиями/справочниками необходимыми для быстрого поиска значения слов:
1. Как правильно будет набрать команду, чтобы вывела по абзацам нужное слово без чуствительности регистра и только набранное слово? Т.е., набираю "Год", а вывод должен быть только "Год", "ГОД", "год" без прибавлений "Годный" "ГОДИНА" и т.д. Причем, браться должны только с первого слова абзаца до конца абзаца. Сам набирал команду:

grep ^Год ./*

но выводит много лишнего
2. В словарях... много лишних пробелов или ошибок: ВасяПупкин, свет.Было, поехал,который и т.д. Как это исправить? Пробелы пробовал удалить через текстовик, но файлы по 40 Мб сканируются по 3-4 часа на каждую ошибку... Есть ли другой способ исправить файлы?
3. Хотел сделать гуй для вывода найденного для читабельного вида (т.к. в консоли читать для глаз слишком жестоко) и возможностью правки (на основе zenity), но не хватает времени/опыта/знаний... Есть ли у кого какие-нибудь наработки, т.к. в инете ничего не нашел. Есть, правда, GoldenDict и Recoll, но они слишком тяжелы на запуск и выводят слишко много лишнего или требуется подключение к интернету.
Заранее благодарен!

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

2 (10.01.2014 21:51:31 отредактировано moshell)

grep -i "/<год/>"
sed -e 's/[\t ]*/ /g'

/\bгод\b/i
s/\s*/ /

последние два из perl
и вообще если колбасить тексты over100500 мегабайтные. то пора подсаживаться на перл.
самая мощнейшая из мощнейших зе бест ов зе бест поддержка регулярок

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

3

moshell пишет:

grep -i "/<год/>"
sed -e 's/[\t ]*/ /g'

/\bгод\b/i
s/\s/ /

Первые две команды зависли на пять минуть, пришлось закрыть терминал. Третья выдала:

bash: /bгодb/i: Нет такого файла или каталога

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

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

4 (10.01.2014 17:51:15 отредактировано moshell)

moshell пишет:

последние два из perl

а зависли первые две потому что вы не передали в качестве аргумента пространство расположения файлов


grep -i "\<год\>" где_искать
sed -e 's/[ \t]\+/ /g' где_искать

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

5

moshell пишет:
moshell пишет:

последние два из perl

а зависли первые две потому что вы не передали в качестве аргумента пространство расположения файлов

Набирал так:

grep -i "/<год/>" ./*
ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

6

gu@moshell:~/perl$ grep -i "^\<RNC_level\>" file
RNC_level rncID;177;from IBIS, as Контроллер (177, 277, 377…);
RNC_level userLabel;RNC01MSK;from IBIS, RNC01MSK, RNC02MSK, RNC03MSK…;
RNC_level mcc;250;;
RNC_level mnc;39;;
RNC_level mncLength;2;;
RNC_level lac;27703;27703;27703;;from IBIS, as Lac (27700, 27701, 27702…);
RNC_level rac;1;1;1;;1;
RNC_level sac;24239;24240;24241;;as cId;
"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

7 (10.01.2014 17:57:04 отредактировано moshell)

простите я вас обманул со слешем)


grep -i "^\<год\>" ./*

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

8

moshell пишет:
gu@moshell:~/perl$ grep -i "^\<RNC_level\>" file
grep -i "^\<год\>" ./*
grep -i "^\<год\>" Даль

Ничего не выводит

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

9

ПОП пишет:

Ничего не выводит

moshell пишет:
gu@moshell:~/perl$ grep -i "^\<RNC_level\>" file
RNC_level rncID;177;from IBIS, as Контроллер (177, 277, 377…);
RNC_level userLabel;RNC01MSK;from IBIS, RNC01MSK, RNC02MSK, RNC03MSK…;
RNC_level mcc;250;;
RNC_level mnc;39;;
RNC_level mncLength;2;;
RNC_level lac;27703;27703;27703;;from IBIS, as Lac (27700, 27701, 27702…);
RNC_level rac;1;1;1;;1;
RNC_level sac;24239;24240;24241;;as cId;
"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

10

grep -i ^год ./*

Так выводит все и в разном регистре: Год, ГОД, год... Годик, Годный... ГОДИК, ...

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

11 (10.01.2014 18:14:46 отредактировано moshell)

вот такие управляющие символы как "^" должны быть спрятаны в кавычки.
а границы слов это и есть \< и \>

gu@moshell:~/perl$ grep --v
grep (GNU grep) 2.12
Copyright (C) 2012 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное ПО: вы можете продавать и распространять его.
Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

Авторы программы — Майк Хертель (Mike Haertel) и другие, см. <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.

gu@moshell:~/perl$ echo $SHELL
/bin/bash
"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

12

moshell пишет:

вот такие управляющие символы как "^" должны быть спрятаны в кавычки.
а границы слов это и есть \< и \>

grep -i "^\<год\>" ./*

Но, так ничего не находит?

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

13

значит слова начинаются не в начале строки

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

14

moshell пишет:

значит слова начинаются не в начале строки

ПОП пишет:

grep -i ^год ./*

Так выводит все и в разном регистре: Год, ГОД, год... Годик, Годный... ГОДИК, ...

ПОП пишет:

grep -i "^\<год\>" ./*

Но, так ничего не находит?

Смотрел в файлы: строки/абзацы начинаются с этих слов

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

15

а чо за grep?
версия его

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

16

moshell пишет:

а чо за grep?
версия его

grep --v

grep (GNU grep) 2.12
Copyright (C) 2012 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или более поздней <http://gnu.org/licenses/gpl.html>.
Это свободное программное обеспечение: вы можете свободно изменять и распространять его.
Программное обеспечение распространяется без гарантии в максимальной степени разрешенной законодательством .

Авторы программы — Майк Хертель (Mike Haertel) и другие, см. <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

17

OS: Linux Mint 14 MATE

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

18

подозреваю это кириллица.

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

19 (10.01.2014 21:30:14 отредактировано moshell)

да, так оно и есть.  гугл пестрит вопросами про герулярки и кириллицу.
ща придет Док = поможет.

вот кастыль.

ПОП пишет:

для быстрого поиска значения слов:

допустим слова в словаре начинаются в начале строки, каким то определенным образом (это можно настроить).
условие - каждое определение слова должно отделяться от остального текста блоком - абзацем. в словаре Ожегова ключевые слова всегда в upcase

gu@moshell:~/perl$ cat words
ГЕН материальный носитель наследственности, единица наследственного материала, определяющая формирование элементарного признака в живом организме

ГЕНИЙ: В древнеримской мифологии:
дух - покровитель человека, позже - вообще олицетворение добрых или злых сил
Добрый г. ”тот, кто помогает кому-н., оказывает на кого-н. благотворное влияние”. Злой г.

ГЕРБ: эмблема государства, города, сословия, рода, изображаемая на флагах, монетах, печатях, государственных и других официальных документах
gu@moshell:~/perl$ cat search
#!/usr/bin/perl -w

use 5.010;
use strict;
use utf8;
use open qw(:std :utf8);

open IN, "<", "words";

my $txt;
my $input;

print "Enter the word\n";

chomp ( $input = <STDIN> );

while (<IN>) {
    $txt .= $_
}

$_ = $txt;

if ( /^$input.*?^$/ms ) {
    print $&
}


gu@moshell:~/perl$ ./search
Enter the word
ГЕНИЙ
ГЕНИЙ: В древнеримской мифологии:
дух - покровитель человека, позже - вообще олицетворение добрых или злых сил
Добрый г. ”тот, кто помогает кому-н., оказывает на кого-н. благотворное влияние”. Злой г.
gu@moshell:~/perl$

в качетве аргумена ком строки можно привинтить выбираемые файлы где нужно искать

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

20 (11.01.2014 16:35:53 отредактировано yars)

абалдеть

find . -maxdepth 1 -type f -exec grep -io '\(\<\|"\)Год\("\|\>\)' {} \;

"перловводам" - вспомните про все кнопки на клавиатуре (подумайте на досуге)

и еще: Если наши люди вместо водки пьют текиллу - о какой культуре вы ведете разговор (с)

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной. yars.

Я конечно далек от мысли...(с)

21 (11.01.2014 16:34:50 отредактировано yars)

я не знаю всех утилит и овер 100500 команд для каждой. легче один язык освоить. имхо.

3.2.7. Запрещено оскорблять участников и отвечать на оскорбления в любой форме — прямой, косвенной или заочной. yars.

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

22 (12.01.2014 00:16:05 отредактировано -=Serj=-)

 Консоль:

$ grep -i "^год " *

ПОП, по 2 и 3 пункту задачу не понял...

Да, у меня Ubuntu.
Нет, не глючит.

23 (11.01.2014 05:14:49 отредактировано ПОП)

grep -i "^год  " *

Вывод такой:

+ открыть спойлер

Ефремова:год  м.  1) Промежуток времени, соответствующий одному обороту Земли вокруг Солнца,  содержащий 365 и 366 суток, или 12 календарных месяцев, отсчитываемых с 1  января, как единица летосчисления.  2) а) Промежуток времени в 12 месяцев, отсчитываемый от какого-л. определенного  момента, дня.  б) Такой промежуток времени,
Словарь_синонимов:год  || без году неделю, без году неделю на свете живет, в летах, в цвете лет, войти в года, входить во все года, дать кому-л. сколько-л. лет, за много лет тому назад, лета, на старости лет, промаяться год, промаячить год, с малых лет, средних лет, человек в летах, человек в почтенных летах
Ушаков:ГОД  года, мн. года и годы, годов, м. 1. Единица летосчисления, промежуток времени, соответствующий периоду обращения земли вокруг солнца. Астрономический год (365 дней, 5 ч., 48 м., 51 с.). Звездный год (365 дней, 6 ч., 9 м., 10 с.). Гражданский год (365 или 366 дней). || Период времени в 12 месяцев. отчисляемых от какого-н. определенного дня. Третий год от рождения. Ей пошел пятый год. Хозяйственный год недавно считали с 1 октября по 1 октября. Мы с год не видались. || Период времени в 12 календарных месяцев, считая с 1-го января. 1920 г. || Круговорот четырех периодов: зимы, весны, лета и осени. Простоял хороший год. Нынешний год. урожайный.

grep -i ^год *

Вывод намного больше:

+ открыть спойлер

Даль:ГОД м. продолжение времени, в какое солнце, при мнимом течении, ходе своем, возвращается в ту же точку; время обтечения земли вкруг солнца, 12 месяцев, или 52 недели с одним или с двумя днями. Тропический, истинный, солнечный или астрономический год, содержит 365 дней, 5 часов, 48 мин., 51 сек.; это время видимого кругооборота солнца, возвращения его к тому же тропику. Гражданский, средний или июлианский год, 365 дней, 6 часов (введен 46 л. до Р. Хр.), но на деле, считают июлианские годы так: три простых по 365 дней, а четвертый високосный, в 366. Грегорианский год (введен с новым счислением, 1582) почти целым часом короче июлианского и ближе к истинному; только в 4082 года накопляется суточная разница. Звездный, сидерический год длительнее солнечного на 20 мин. 6 сек. и определяет время, в какое солнце, при мнимом течении своем, приходит вновь в ту же точку звездного неба. Аномалистический год, длительнее солнечного на 26 мин, и составляет время, в какое земля возвращается на то же расстояние от солнца. Лунный астрономический год, 12 синодических лунных месяцев. Лунный гражданский год: простой, 354 дня; вставочный, 384 дня; счет древний, неупотреб. Платонический год, время обращения полюса земли вкруг полюса эклиптики; 25,813 гражданских лет. Годом называют и круг, кругооборот четырех времен года, и в сем, житейском значении говор. тулуп трех зим, три года на плечах; соловей двух зим, два года в клетке; борзая по другой осени; корова по четвертой траве; расшива по третьей воде; лошадь третью соху пашет, семи лет; сокол трех мытей и пр. Новый год, первый день наступающего года. Новый год первый час дня набирает. Году начало, зиме середка. Перелом зимы. Щедрованье, обсыпают зерном и пр. Гаданья; варят кашу. Ныне такой год, година, пора, время. Кладем не в год, а в рот, не впрок, не в рост, а живем со дня на день. Не в год спрашивают, а в рот. Не сули в год, давай поскорее в рот. Пустил было в год (о хлебе, в посев; о деньгах, в рост), да заворотил в рот. В год пущу, годовик возьму? хлеб. С году на год собаки лают? мялицы. Из года в год беззубая баба (старушка Маврушка) кости грызет? то же. Не годы мрут, люди. Год от году не легче. Год за год (за годом) уходит. Он год по году нас навещает. Из года в год или год в год, год по году, каждый год, каждогодно, годы сряду, ежегодно, всегда. Год на год не приходится, не равен случай, пора, всяко бывает. Год на год не работник, нельзя отработаться в один раз, всякой поре своя работа. Год годом очищается или правится, хозяйство исправно, отчет верен. Быть во всех годах, о человеке и животном в поре, взрослым, возмужалым, вырасти и сложиться. Без году неделя, весьма недавно или недолго. Черный год, бедственный; красный, счастливый. Отдать кого в годы, на выучку; отдать землю в годы, в кортому: отдать деньги в годы, в рост. Год - не неделя: все будет, да не теперя. Год со днем. Без году неделя. Три года не три века. Три дня не три года. Год не неделя, покров не теперя, до петрова дня не два дня. Двойной год только перед страшным судом будет. Чему не год, так и семенам не род. Чему не год, тому и не вод (не плод, не приплод). Всякая тряпица (небылица) в три года пригодится. Годы в роды, редко; в кои годы раз. Впервые годом, да и то с горем. Год житейский, день в святцах, а месяц на небе, неизвестно когда, о будущем. Не годы, а горе старит. Не по годам бьют (виноватого), а по бокам. За годом, что за веком. Сколько дней у Бога в году, столько святых в раю: а мы грешные им празднуем. Который годочек мальчику? Годик другой пождем. Такой плохой годишка выдался, что беда. Экой годища, двенадцатый год!
Ефремова:год  м.  1) Промежуток времени, соответствующий одному обороту Земли вокруг Солнца,  содержащий 365 и 366 суток, или 12 календарных месяцев, отсчитываемых с 1  января, как единица летосчисления.  2) а) Промежуток времени в 12 месяцев, отсчитываемый от какого-л. определенного  момента, дня.  б) Такой промежуток времени,
Ожегов:год промежуток времени, равный периоду обращения Земли вокруг Солнца - 12 месяцам, вообще срок в 12 месяцев Календарный г. (с января по декабрь включительно). Четыре времени года (зима, весна, лето, осень). Новый г. (наступающий следующий год, а также день 1 января). Прошло три года, пять лет. Урожайный г. Два года, пять лет от рождения (ребенку). Н- год (на один год). З- год (за один год). Из года в год (повторяясь каждый год). Год на год (н- год) не приходится (в разные годы бывает по-разному; разг.). Круглый г. (весь год). С годами (по прошествии времени). Годами не видимся (по нескольку лет подряд).
Ожегов:год промежуток времени, в который завершается цикл каких-нибудь работ, занятий Учебный г. Сельскохозяйственный г. Хозяйственный г. Финансовый г.
Ожегов:год период времени охватывающий некоторое количество лет Героические годы. Детские годы. В годы юности.
Ожегов:год возраст Он уже в годах (пожилой, старый). Теперь уже годы не те (стал уже старым, стареет). Не по годам (не по возрасту). Решение откладывается с году на год.
Ожегов:год В сочетании с порядк. числ. промежуток времени в пределах десятилетия Восьмидесятые годы 20 века. Люди сороковых годов.
Ожегов_Шведова:ГОД,  -а (-у),  в году,  о годе,  мн. годы и года,  годов и лет,  годам,  м.1. Промежуток времени,  равный периоду обращения Земли вокруг Солнца - 12месяцам,  вообще срок в 12 месяцев. Календарный г. (с января по декабрьвключительно). Четыре времени года (зима,  весна,  лето,  осень). Новый г.(наступающий следующий год,  а также день I января). Прошло три года,  пятьлет. Урожайный г. Два года,  пять лет от рождения (ребенку). На год (на одингод),  3d год (за один год). Из года в год (повторяясь каждый год). Год нагод (на год) не приходится (в разные годы бывает по-разному; разг.). Круглыйг. (весь год). С годами (по прошествии времени). Годами не видимся (понескольку лет подряд). 2. (род. мн. годов). Промежуток времени,  в к-рыйзавершается цикл каких-н. работ,  занятий. Учебный г. Сельскохозяйственный г.Хозяйственный г. Финансовый г. (годичный срок оборота финансовых средств).3. мн. Период времени,  охватывающий нек-рое количество лет. Героическиегоды. Детские годы. В годы юности. 4. мн. (род. мн. годов). В сочетании спорядк. числ. - промежуток времени в пределах десятилетия. Девяностые годы20 века. Люди сороковых годов. 5. мн. Возраст. Он уже в годах (пожилой, старый). Теперь уже годы не те (стал уже старым,  стареет). Не по годам (непо возрасту).* Год от году - с каждым следующим годом (о чем-н.изменяющемся). Город хорошеет год от году. Без году неделя (разг. неодобр.)- с очень недавнего времени. Живет здесь без году неделя,  а уже со всемиперессорился. С году на год (разг.) - переходя из одного года в другой.Решение откладывается с году на год. II уменьш. годик,  -а,  м. (к 1 знач.) игодок,  -дка,  м. (к 1 знач.; разг.). II прил. годичный,  -ая,  -ое (к 1 и 2знач.) и годовой,  -ая,  -ое (к 1 и 2 знач.). Го-дичный отпуск (на год).Годичное собрание (ежегодное). Годовой доход (за год). Годо-вой план (нагод).
Словарь_синонимов:год  || без году неделю, без году неделю на свете живет, в летах, в цвете лет, войти в года, входить во все года, дать кому-л. сколько-л. лет, за много лет тому назад, лета, на старости лет, промаяться год, промаячить год, с малых лет, средних лет, человек в летах, человек в почтенных летах
Толковый_словарь:ГОД , промежуток времени, приблизительно равный периоду обращения Земли вокруг Солнца. В астрономии различают: 1) сидерический (звездный) год, соответствующий одному видимому обороту Солнца по небесной сфере относительно неподвижных звезд; составляет 365,2564 средних солнечных суток; 2) тропический год - промежуток времени между двумя последовательными прохождениями центра истинного Солнца через точку (среднюю) весеннего равноденствия (365,2422 сут); 3) аномалистический год - промежуток времени между двумя последовательными прохождениями центра Солнца через перигей его видимой геоцентрической орбиты (365,2596 сут); 4) драконический год, соответствующий времени между двумя последовательными прохождениями Солнца через один и тот же (восходящий или нисходящий) узел орбиты Луны на эклиптике (346,6200 сут); продолжительность всех годов приведена для 1900; 5) календарный год, составляющий 365 сут для простых годов и 366 сут для високосных годов; 6) лунный год продолжительностью 12 лунных синодических месяцев (в среднем 354,367 сут).
Ушаков:ГОД  года, мн. года и годы, годов, м. 1. Единица летосчисления, промежуток времени, соответствующий периоду обращения земли вокруг солнца. Астрономический год (365 дней, 5 ч., 48 м., 51 с.). Звездный год (365 дней, 6 ч., 9 м., 10 с.). Гражданский год (365 или 366 дней). || Период времени в 12 месяцев. отчисляемых от какого-н. определенного дня. Третий год от рождения. Ей пошел пятый год. Хозяйственный год недавно считали с 1 октября по 1 октября. Мы с год не видались. || Период времени в 12 календарных месяцев, считая с 1-го января. 1920 г. || Круговорот четырех периодов: зимы, весны, лета и осени. Простоял хороший год. Нынешний год. урожайный.

Остальные слова, начинающиеся с букв "год", не копирую сюда.
Почему такое расхождение?

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

24

moshell пишет:

вот кастыль.

Кастыль не помогает, ссылаясь на ошибки в 17 и 23 строке.

-=Serj=- пишет:

ПОП, по 2 и 3 пункту задачу не понял...

Во 2-м пункте указываются ошибки, которые желательно исправить...
В 3-м: чтобы вывод был не в консоль, а в диалоговое окно (в читабельном виде), но с возможностью править текст.
На Хабре видел статью про zenity, вот и захотелось попробывать сделать скрипт...

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

25

-=Serj=- пишет:

grep -i "^год  " *

Лишний пробел.

ПОП пишет:

Почему такое расхождение?

В некоторых словарях (напр. Ожегов_Шведова:ГОД, ) после слова стоит запятая.

ОС: Debian 8.11, MATE 1.8.1, Caja 1.8.2

26 (11.01.2014 16:05:36 отредактировано moshell)

ПОП пишет:

Кастыль не помогает, ссылаясь на ошибки в 17 и 23 строке.

Вы его слепо запускали даже не читая.
в таком случае он и не должен работать.



вот вам паттерн, подгоняйте сами

начало строки
слово начинающееся с заглавной
необязательное подчеркивание
слово
двоеточие
искомое слово с игнором регистра
необязательная запятая
пробельный символ.

если это перл то необязательное подчеркивание делать не надо.

//add тупанул. двоеточия то grep вставляет?
и если у Вас текст словаря идет монолитом (где абзацы определений слов ничем не ограничиваются друг от друга, то ничего не получится

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

27 (11.01.2014 16:39:10 отредактировано allez)

ПОП пишет:

В некоторых словарях (напр. Ожегов_Шведова:ГОД, ) после слова стоит запятая.

В этом случае можно попробовать поискать так:

word="год"
grep -Ei "^${word}[^[:alpha:]]{1,}" *

При этом будет вестись поиск указанной в переменной word последовательности символов, находящейся в начале строки, за которой следует один или более символов, не являющихся буквами.

P. S. Кстати, а не могли бы вы выложить здесь один или несколько имеющихся у вас файлов-словарей? Глядишь, я на досуге и поработал бы над вашей проблемой. ab

28

тогда уж как то так

grep -ioH "^[\t ]*год[^[:alpha:]]"
Я конечно далек от мысли...(с)

29

Насколько я понял, вопрошающему нужно выводить на экран не просто совпавшую последовательность, а целую словарную статью, поэтому опция -o в вашей конструкции немного лишняя. ab

30

ПОП пишет:

Почему такое расхождение?

Извиняюсь, закрался лишний пробел в кавычках. А вообще, правильнее указал allez:

$ grep -Ei "^год[^[:alpha:]]" *
ПОП пишет:

в консоли читать для глаз слишком жестоко

Настройте консоль.

ПОП пишет:

Во 2-м пункте указываются ошибки, которые желательно исправить...

Ну, это на целую диссертацию потянет, если не приспособить готовые решения ab

ПОП пишет:

В 3-м: чтобы вывод был не в консоль, а в диалоговое окно (в читабельном виде), но с возможностью править текст.

Неизвестен формат входных данных. Возможно там следует использовать другой подход для поиска.

Да, у меня Ubuntu.
Нет, не глючит.