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