bash - 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
解决方案
您可以使用以下-f
选项:
-f
文件,--file=
文件从FILE获取模式 ,每行一个。如果此选项被多次使用或与
-e
(--regexp
) 选项结合使用,则搜索所有给定的模式。空文件包含零个模式,因此不匹配任何内容。
grep -f "$words" "$1" > outputfile
您可能还对-w
和 感兴趣-F
:
-w
,--word-regexp
仅选择那些包含构成整个单词的匹配项的行。测试是匹配的子字符串必须在行首,或者前面有一个非单词组成字符。同样,它必须位于行尾或后跟非单词组成字符。构成单词的字符是字母、数字和下划线。
-x
如果还指定了此选项,则此选项无效。
-F
,--fixed-strings
将PATTERN解释 为固定字符串的列表(而不是正则表达式),由换行符分隔,其中任何一个都将被匹配。
推荐阅读
- python - Flutter / Dart:将图像转换为 1 位黑白
- r - 根据 R 中的行值为数据框中的每一行分配值
- flutter - 如何设置同一个 ChangeNotifier 的多个 ChangeNotifierProvider?
- r - 在 rmarkdown 中使用文本变量
- javascript - 遍历返回空值的大对象
- c - 为什么只有内核可以切换CPU执行模式?
- java - 使用 unirest 创建 jenkins 工作
- c# - 更新控件中的列表框不返回正确的选定值
- python - 库 - google.cloud:对象没有属性“schema_from_json”
- java - Injectmocks 无法实例化,因为没有找到线程绑定请求