linux - Linux:将文件夹中的文件重命名为序号
问题描述
我想将文件 1、文件 2 ... 文件 100 更改为 001、002、... 100,但它会更改为完全不同的数字。例如file1更改为051。
这是我的代码
string_leng=`(ls -l | grep ^- | wc -l) | wc -L`
echo $string_leng
find . | grep 'file' | nl -nrz -w$string_leng -v1 | while read n f; do mv "$f" "$n"; done
解决方案
您的问题中缺少一些细节,但这里有多种想法可以帮助您:
- 避免
grep
命令输出。有更好的方法。例如计算目录中的文件:find directory -maxdepth 1 -type f | wc -l
find
不对输出进行排序,那么您需要使用排序:(find . | sort -n
带有-n
数字排序选项)find . | grep 'file'
应该给你文件的名称?更好的使用find -type f
推荐阅读
- php - 如何将字符串转换为数组
- android - Android Studio 中缺少设备文件资源管理器
- sql - 在 1 个单行中合并、合并、连接 2 个不同的行 Google SQL | 大查询
- reactjs - 如何在 React-Bootstrap 中使用 TransitionComponent
- oracle - 取消 Oracle Gather Stats 作业有什么后果吗?
- c# - 如何在 ASP.NET 核心中使用存储库模式进行排序?
- python - pytorch和tensorflow的CUDA工具包运行时在哪里,会不会冲突?
- python - 将神经网络转换为批量训练
- magento - Magento 部署超时 | 部署管理器
- c - 如何修改地址处的值