我想打印出文件的名称,当且仅当它不包含字符串时foo.但是,如果file包含foo和我运行它
grep -lv 'foo' file
Run Code Online (Sandbox Code Playgroud)
file 输出.为什么会发生这种情况,我该怎么做才能解决这个问题?
-v意味着匹配任何与模式不匹配的行.因此,-lv意味着列出包含与模式不匹配的任何行的任何文件.这与没有任何一行与模式匹配的文件不同.
使用该-L选项列出与模式没有任何匹配的所有文件.
grep -L 'foo' file
Run Code Online (Sandbox Code Playgroud)
-L, --files-without-match
抑制正常输出; 而是打印每个输入文件的名称,通常不会打印输出.扫描将在第一场比赛中停止.
不要-v用这个.-L已经反转列出了哪些文件,并-v反转了行匹配的方式,因此-Lv也是如此-l.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |