linux shell命令求解。累加行数的命令。

有如下一个linux中的文本文件a.txt,内容如下1|a12|a23|a34|a41|b12|b21|c12|c23|c34|c45|c51|d12|d23|d31|e... 有如下一个linux中的文本文件a.txt,内容如下
1|a1
2|a2
3|a3
4|a4
1|b1
2|b2
1|c1
2|c2
3|c3
4|c4
5|c5
1|d1
2|d2
3|d3
1|e1
2|e2
1|f1
2|f2
3|f3

我想输入某个查询内容,程序能够自动计算出某类内容的行数,并得到类似如下的结果:

如果输入查询内容"d1",输出“3”行;
或输入查询内容"b1",输出“2”行;
或输入查询内容"e1",输出“2”行;
或输入查询内容"c1",输出“5”行;

也就是说,输入查询内容后,linux命令进行扫描文本,遇到下一个“1|”后,结束扫描行数,并累加行数。
展开
 我来答
lottolotto
2012-03-25 · TA获得超过725个赞
知道小有建树答主
回答量:737
采纳率:0%
帮助的人:270万
展开全部
你这个不难实现,问题你是你表达不清楚,一会说"d1“关键字,一会又说"1|"
前面你说。如果输入查询内容"d1",输出“3”行,什么依据?因为3行有"d"?
我猜你是这个意思吧?
cat a.txt | grep "|." -o | tr -d "|" | uniq -c
百度网友aaf5d6a
2012-03-24 · TA获得超过1420个赞
知道小有建树答主
回答量:610
采纳率:100%
帮助的人:579万
展开全部
[root@localhost shell]# cat a.txt | grep d | wc -l
3
[root@localhost shell]# cat a.txt | grep b | wc -l
2
[root@localhost shell]# cat a.txt | grep e | wc -l
2
[root@localhost shell]# cat a.txt | grep c | wc -l
5
追问
如果是被查询的字符串是不规则的,那应该如何写?我想利用“1|”来判断,因为“1|”是关键字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式