linux - 匹配后重命名所有目录
问题描述
我正在寻找一种方法来重命名所有这些目录:
1_20_10
1_20_20
1_20_30
1_20_40
到:
2_20_10
2_20_20
2_20_30
2_20_40
我试过这个命令:
mv /1_20*/ /2_20*/
和重命名命令但不起作用。
解决方案
您可以使用循环执行替换sed
和迭代for
。
for i in 1_*; do
mv $i $(sed -En 's/^1_(.*)/2_\1/p' <<< $i);
done
推荐阅读
- javascript - 如何允许 Chrome 扩展程序打开站点信息对话框
- excel - 在excel中插入新行时表格中断中的相对引用
- c# - 如何获取具有相同 ID 的两个字段
- mongodb - MongoDB 查询每个级别的嵌套元素
- python - 我的模型似乎不起作用,因为准确度和损失为 0
- python - 如何对一组图像(.png 格式)执行二进制阈值处理并将它们写入另一个具有相同文件名(和相同 .png 扩展名)的文件夹中?
- docker - 带有 Docker 的 gcc 开发环境?
- c - 有什么方法可以在 C 中使用 strcmp 比较 2 个不同长度的字符串
- java - Oracle 12c 始终使用 100% CPU
- c# - 为什么我不能从 C# 中的 Powershell.Invoke() 方法返回所有 cimsession 函数