首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用grep查找Linux文件

问用grep查找Linux文件
EN

Stack Overflow用户
提问于 2022-03-17 20:50:35
回答 3查看 71关注 0票数 0

我是Linux新手,我不知道自己做错了什么。我需要在目录/usr/sbin中找到名字中包含“fs”且不以“x”开头的文件。我需要在111.txt文件中写入结果,但不能使用find来完成。我试过这个命令,但它不起作用。

代码语言:javascript
复制
grep -r -v '^x' -w 'fs' /usr/sbin/ > 111.txt 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-17 21:08:50

您可以将find管道转换为两个链接的grep命令:

代码语言:javascript
复制
find /usr/sbin/ | grep 'fs' | grep -v '^/usr/sbin/x' > 111.txt
票数 3
EN

Stack Overflow用户

发布于 2022-03-17 21:08:58

grep并不是用来实现这个目的的,您应该使用find:

代码语言:javascript
复制
find /usr/sbin -type f -name '*fs*' -not -name 'x*' > 111.txt
票数 2
EN

Stack Overflow用户

发布于 2022-03-17 21:51:50

试一试

代码语言:javascript
复制
shopt -s extglob
printf '%s\n' /usr/sbin/@(fs*|[^x]*fs*) >111.txt
  • shopt -s extglob支持“扩展全局”,它支持像@(pattern1|pattern2)这样的模式。请参阅格罗布-格雷格的维基中的格罗布-格雷格的维基部分。
  • 这个答案最初是suggestedBAD代码。别用。printf '%s\n‘/usr/sbin/^x*fs* >111.txt被破坏,因为它排除了名字以fs开头的文件。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71518888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档