bash - 列出名称长度在 3 到 6 个字符之间的所有文件
问题描述
我必须为课堂编写一个小 shell 脚本,而且由于只有在线讲座,我没有选择向我的教授寻求帮助的选项。
任务(应该)其实很简单:
编写一个shell脚本,列出当前目录下所有文件名大于3且小于6个字符的文件
12.txt
-->不应列出
123.txt
-->不应该列出
1234567.txt
-->不应列出
12345.txt
--> 应该列出
123456.txt
--> 应该列出
问题中没有给出后缀(文件扩展名).txt
,它只是我的一个例子。所有文件的列表应该适用于任何后缀。
如果有人可以帮助我理解正确的命令,或者发布指向教程等的链接,我会很高兴。
解决方案
它效率不高,但它会帮助您理解,遍历目录中的每个 .txt 文件并逐个过滤它们:
cd yourpath/dir
for i in *.txt;
do
new_Val="${i%.*}"
if (( ${#new_Val} >3 && ${#new_Val} <6 ));
then
echo "${i}"
fi
done
删除后缀.txt
:${i%.*}
姓名长度:${#new_Val}
输入 :
1234567.txt
12345.txt
123aaaa.txt
123aa.txt
1234.txt
输出 :
12345.txt
123aa.txt
1234.txt
推荐阅读
- typescript - 打字稿动态界面
- powershell - 将选择字符串管道结果与字符串进行比较
- node.js - Nodejs/express - Router.use() 需要中间件功能,但有一个 ' + gettype(fn)); 没有 app.use('/',routes);
- python - 如何克服'DataFrame'对象在Python的熊猫中没有属性'excelwriter'
- scikit-learn - 管道中 LogisticRegression 的 _coef 值过多
- getstream-io - 在 getstream 中代表分组的用户
- php - 如何在 Laravel 中对一年中的月份进行唯一检查
- javascript - FFmpeg 实时音频编辑器
- spring-boot - 未调用订阅映射
- android - TabLayout 选项卡标题未显示在 Android Studio 中