grep - 使用多个标志时,Grep 不返回此类文件或目录
问题描述
我是 bash 脚本的初学者。我刚开始写一个脚本,它检查 b.txt 的内容都可以在 a.txt 中找到。(最好是逐行)。我的代码如下:
grep -Ffw b.txt a.txt
如您所见,我想做固定字符串而不是 REGEX,我想检查 b.txt 文件中的所有内容,因为 b.txt 中有一些字符串,我想检查它们是否都存在于 a 中。文本。当然,我也只想匹配整个单词。所以这些是要求,但是当我运行这个命令时,它会返回一个错误说:grep: w: No such file or directory
我在想bash中的标志可能有一些限制?抱歉,我不太熟悉该语言,没有阅读太多关于 MAN 页面等的内容。如果有人可以帮助我解决这个难题,将不胜感激:) 此外,我想如果可能的话,我想添加-q
一个当有匹配时也抑制输出,现在我没有在示例中添加它,因为它甚至无法通过 3 个标志。那么有人可以在这里给我一些提示吗?提前致谢!
解决方案
特此来自手册页的一些解释:
OPTIONS
Generic Program Information
...
-F, --fixed-strings
Interpret PATTERNS as fixed strings, ...
-f FILE, --file=FILE
Obtain patterns from FILE, ...
-w, --word-regexp
Select only those lines ...
正如您所看到的,选项-F
和-w
表示立即结束(因此逗号-F,
和-w,
),但-f
开关后跟FILE,
with 表示它们属于一起。
我想保留 order Ffw
,这是可能的,但是您需要执行以下操作:
grep -Ff b.txt -w a.txt
推荐阅读
- c - 尝试交换节点数据
- iis - 由于权限不足,Azure DevOps 管理 IIS 任务部署失败,但帐户位于本地管理员组中
- python - 使用 Python 和 beautifulsoup4 登录网站后,如何抓取搜索结果?
- javascript - 关于 .replace 函数的功能范围的问题
- c++ - 将文件夹导入 Visual Studio 2017
- azure - 哪种 Azure 存储方法最适合临时文件传输?
- python - 索引超出范围错误:使用 Selenium 在多个网页的元素列表中迭代页面点击
- tensorflow - InvalidArgumentError:不兼容的形状:[1920] 与 [32,60] [[{{node metrics_3/acc/Equal}}]]
- blockchain - 使用“tendermint init”启动tendermint 节点时出错
- eclipse - 如何从 github 项目创建 jar