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会省略文件名. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |