我试图编写一个脚本来计算目录中带有元音的文件数量。
如果我用
find $1 -type f | wc -l我得到了目录$1中的文件数,但是我不知道如何使用grep来计数一个有元音的文件,我正在尝试这样的方法
find $1 -type f | grep -l '[a,e,i,o,u,A,E,I,O,U]' | wc -l发布于 2015-09-13 16:48:12
您可以使用这个gnu find命令来计数至少一个元音的所有文件:
find . -maxdepth 1 -type f -iname '*[aeiou]*' -printf ".\n" | wc -l-iname '*[aeiou]*' glob模式将只将文件名与至少一个a,e,i,o,u匹配(忽略情况)。
如果还想递归地计算子目录中的文件,请删除-maxdepth 1。
发布于 2015-09-13 16:50:32
如果您可以接受计数目录:
ls -d *a* *e* *i* *o* *u* *y* *A* *E* *I* *O* *U* *Y* | wc -l否则:
find $1 -type f | grep -i '[aeiouy]' | wc -l发布于 2015-09-13 16:51:22
你的尝试失败有两个原因。首先,如果grep正在管道中读取,则-l没有意义,因为-l的目的是只打印匹配的输入文件,但在这种情况下,惟一的输入文件是stdin。其次,您的语法是错误的。尝试:
... | grep -i '[aeiou]' | ...https://stackoverflow.com/questions/32552053
复制相似问题