2010-11-02 2 views
0

У меня есть файл с кучей слов, в котором многие из них не имеют большого смысла, например «completemakes» или даже #s mixed with letters/words. Мне нужно использовать инструмент для проверки орфографии, если он существует в словаре, оставьте его, если он не удалит его.bash - удалить неправильные слова

Что было бы хорошим способом сделать это в bash?

Благодаря

ответ

0

Я имел некоторую забаву с получением одинарной кавычки здесь, но эй, это должно быть трудно читать, как это было писать, не так ли? (Предполагая, что ваши слова будут перечислены в words.txt)

awk 'system("grep -i -q " "'"'"'^"$0"$'"'"'" " /usr/share/dict/words") == 0 {print $0};' words.txt 
+0

Просто уточнить, если предположить, AWK обрабатывает строку «некоторые # плохое слово», то, грубо цитируемый срок будет вычисляться «^ некоторые # плохого слова $» когда он передается в grep. Я знаю, что это ужасно, и мне стыдно за то, что он помещал его в interwebs, но в некотором смысле это тоже очень красиво. –

+0

Мои глаза! Они горит! 'awk '(" grep -i -q ""^"$ 0" $ ""/usr/share/dict/words ") == 0 {print $ 0}' words.txt' –

+0

@Dennis делает это с пробелами или # символов правильно? Я пробовал что-то вроде этого, поэтому я закончил тем, что обходил 0 долларов одинарными кавычками. –

Смежные вопросы