根据文件名中的字符排除多个文件计数排除

时间:2015-07-06 09:15:31

标签: macos bash sorting terminal

我是一个相当新手的终端用户,我想知道如何根据名称中的特定字符制作脚本选择文件,这样就可以将它们排除在检查文件中的文件数量之外。单个文件夹,必须显示为单个数字。有问题的角色是º。

2 个答案:

答案 0 :(得分:0)

使用文件名扩展,也称为globbing:

echo *[!w]*

将显示当前目录中不包含w的所有文件名列表。

*表示"零个或多个字符"

[! ]包含要排除的单个字符列表

要计算:

for fname in *[!w]*
do
    (( count++ ))
done

echo "$count files without a 'w'"

我选择了' w'因为它更容易看到和测试。还有很多其他方法可以做,包括set,使用数组和wc程序。

答案 1 :(得分:0)

无论文件名包含什么,这都有效:

count="$(find . -mindepth 1 -not -name '*º*' -exec printf x \; | wc -c)"

测试:

$ cd -- "$(mktemp -d)"
$ touch aº
$ touch b
$ find . -mindepth 1 -not -name '*º*' -exec printf x \; | wc -c
1