find grep wc 查询一个目录下的文件中包含特定字符的行,以及符合条件的行数

findgrepwc查询一个目录下的文件中包含特定字符的行,以及符合条件的行数怎么写啊?能把每个字段解释一下吧... find grep wc 查询一个目录下的文件中包含特定字符的行,以及符合条件的行数 怎么写啊 ?
能把每个字段解释一下吧
展开
 我来答
阳光上的桥
推荐于2017-11-24 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你这个是UNIX的shell语句,我给你写出来了:

find . -exec grep aaa {} | wc -l

补充:
find/grep/wc是UNIX上常用的命令,每个命令的说明可以在UNIX上用man查看,比如命令“man find”可以查看find命令的详细功能说明,每个参数都解释得非常清楚,还有距离。

在上面的例子中,find用来搜索当前目录、以及所有子目录下的文件,其exec参数说明找到文件要满足后面的命令,也就是里面要有aaa内容,这是grep的功能。如果不要|以及后面的wc,能把所有包含aaa的文件、以及文件中的那一行显示出来,加上wc就只统计总共有多少行。
kwydwuf
推荐于2018-05-17 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2012万
展开全部

假定你要查询 /path/to/dest 目录下(包括子目录)的所有文件中包含 字符 "abcdefg" 的行。

# 列出所有包含 "abcdefg" 的行及其所在的文件
find /path/to/dest -type f -exec grep -H "abcdefg" {} \;

# 统计匹配的的行数
find /path/to/dest -type f -exec grep -H "abcdefg" {} \; | wc -l

 

-type f 表示搜索的是文件 (-type d 则是目录,具体man find)

-exec <cmd> <args> {} \;   表示对找到的每一个文件名执行  <cmd> <args> ,比如找到 a.c, b.c,那么就相当于依次执行

<cmd> <args> a.c

<cmd> <args> b.c

注意 {} 会被find替换成找到的文件名, \; 是必须的,用来标记 -exec 的终结


grep -H <Pattern> <FILE>

在 <FILE> 中搜索 <Pattern>, -H 表示在每一个匹配行前打印出文件名


wc -l <FILE> 

统计 <FILE> 中的行数

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式