当前位置:  开发笔记 > 编程语言 > 正文

我怎样才能找到一些管道('|')?

如何解决《我怎样才能找到一些管道('|')?》经验,为你挑选了2个好方法。

我试过了:

 grep -c "\|" *.* 

但它不起作用,因为它给出了连续管道的错误计数.

我怎么能做到这一点?



1> Adam Rosenfi..:

您可以使用tr(1)删除所有非管道字符,然后使用wc(1)总计:

cat *.* | tr -d -c '|' | wc -c



2> 13ren..:

这是违反直觉的,但在大多数unix正则表达式中,转义|使其成为or-operator.所以你的线实际上匹配"什么都没有"(你可以通过在任何一方添加一些替代品来测试它).只是用

grep -c "|" *.*

其次,grep计算行数,而不是字符出现次数.你可以使用不同的工具; 或者,如果你坚持grep,你可以把每个"|" 在自己的路线上.例如,用sed:

sed 's/|/|\n/g' *.*

注意:如果使用sed,我建议进行大量测试,以确保它能够完成您的想法.那时我需要.

最后,结合成分:

cat *.*  |  sed 's/|/|\n/g'  |  grep -c "|"

不幸的是,这可能不适合你,因为你可能没有使用unix(因为*.*).但希望它解释了这个问题,我总是觉得奇怪的是让人放心.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有