加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – cat * | grep something …结果是什么文件?

发布时间:2020-12-15 18:40:01 所属栏目:安全 来源:网络整理
导读:如果要运行以下命令 cat * | grep DATABASE shell会吐出包含单词DATABASE的*文件中的所有行.有没有办法同时吐出每行的文件? 我试图为grep使用-H选项,根据man说打印每个匹配的文件名,但在我的shell中它只是说 (standard input):$DATABASE_FUNCTION = dothis(
如果要运行以下命令
cat * | grep DATABASE

shell会吐出包含单词DATABASE的*文件中的所有行.有没有办法同时吐出每行的文件?

我试图为grep使用-H选项,根据man说打印每个匹配的文件名,但在我的shell中它只是说

(standard input):$DATABASE_FUNCTION = dothis();
不要用猫.而是直接使用grep DATABASE *或grep -n DATABASE *(如果你想知道行号和文件名).

见useless use of cat.

为了澄清一点:cat *实际上连接所有文件,因为它通过管道将它们提供给grep,所以grep无法知道哪个内容属于哪个文件,甚至实际上甚至不知道它是在扫描文件还是你只是快速打字.一旦使用管道,它就是一个大的标准输入流.

最后,-H几乎肯定是多余的,因为当有多个文件要搜索时,grep默认打印文件名.但是,如果您想要解析输出,它可能会有一些用处,因为* glob可能会扩展为单个文件,在这种情况下grep会省略文件名.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读