linux grep -d skip/skip/recurse 是读目录文件采取读或者跳过,我感觉这个没有用啊,用了和没用一样!

 我来答
百度网友a8d885d
2019-04-20
知道答主
回答量:1
采纳率:0%
帮助的人:821
展开全部

个人理解,举例子,过滤关键字'DEVICE=ens33',过滤位置/etc/*   ,就是在/etc/目录下过滤出关键字'DEVICE=ens33'的行

# read 读取
[root@localhost ~ ] # grep -d read 'DEVICE-ens33' /etc/*

会发现得到很多:grep: /etc/xxx: Is a directory,我给的范围是/etc/*,grep过滤字符时肯定要打开文件读取到数据吧,而我给的路径有的目录,目录怎么读取,所以读目录的时候会报错,那么我认为read是默认的模式,并且不会过滤子目录内的文件!

# recurse 递归
[root@localhost ~ ] # grep -d recurse 'DEVICE=ens33' /etc/*

得到结果:/etc/sysconfig/network-scripts/ifcfg-ens33:DEVICE=ens33发现,过滤的路径不再是/etc/xxx,而是将/etc/所有的目录包括子目录都在过滤范围内了,而没有提示xxx Is a directory,可能是读取子目录时发现是目录,就进到子目录在进行过滤 [0_0]异想天开,反正,这不就是递归了嘛。

# skip 跳过
[root@localhost ~ ] # grep -d skip 'DEVICE=ens33' /etc/*
# 发现什么都没有,而我使用
[root@localhost ~ ] # grep -d skip '/root:/bin/bash' /etc/*
# 结果如下
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd-:root:x:0:0:root:/root:/bin/bash

发现了当我使用skip这个选项,只有/etc/xxx这级目录能被过滤出来,发现它并没有递归了,并且没有提示xxx Is a directory。从字面意思上看,skip,貌似是目录的话就跳过了。。。

暨隽巧mU
2013-03-30 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:113万
展开全部
grep命令 不是这样用的 你想实现什么 我告诉你
追问
你可以举个例子吗,比如要找个带指定的字符的文件,搜索目录,里面不是有子目录吗?我知道-r为搜索子目录,如果不让它搜索子目录怎么弄?
追答
用通道

ls -R 查找目录 | grep “文件名所带字符"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式