首页 > 解决方案 > grep /usr/share/dict/words

问题描述

我有一个文本文件:

Butterfly

[tab][space]Bridge

space-12234

%%%^^%^%^^%

我试图只保留“单词”文件中包含字典单词的行(/usr/share/dict/words

输出如下所示:

Butterfly

[tab][space]Bridge

space-12234

我试过了

words='/usr/share/dict/words'
grep ??  $words $1 > ouputfile

标签: bashshellgrep

解决方案


您可以使用以下-f选项:

-f 文件,--file=文件

从FILE获取模式 ,每行一个。如果此选项被多次使用或与-e( --regexp) 选项结合使用,则搜索所有给定的模式。空文件包含零个模式,因此不匹配任何内容。

grep -f "$words" "$1" > outputfile

您可能还对-w和 感兴趣-F

-w,--word-regexp

仅选择那些包含构成整个单词的匹配项的行。测试是匹配的子字符串必须在行首,或者前面有一个非单词组成字符。同样,它必须位于行尾或后跟非单词组成字符。构成单词的字符是字母、数字和下划线。-x如果还指定了此选项,则此选项无效。

-F,--fixed-strings

将PATTERN解释 为固定字符串的列表(而不是正则表达式),由换行符分隔,其中任何一个都将被匹配。


推荐阅读