linux - 如何使用 sed 反复更改目录名称?
问题描述
我必须更改一堆目录的名称。规则是更改每个包含 hostnameABC 的目录为 hostnameXYZ。
因此,如果它的名称为 hostnameABC_servers 或 Profiles_hostnameABC,它应该受到影响并更改为名称 hostnameXYZ_servers 和 Profiles_hostnameABC。对于 /apps/XPTO/ 中符合此标准的每个目录,必须递归地执行此操作。
我试图使用这个预制代码。但不起作用,因为我对 shell 了解不多,所以无法修复它。
find /apps/XPTO/ -type d \
| egrep -v "temp|bkp" \
| egrep ".*hostnameABC[_a-Z0-9]*$" \
| while read line; do
mv "$line" `echo $line | sed "s/hostnameABC/hostnameXYZ/g"`
done
它只是没有改变,你能帮我找出问题所在吗?
解决方案
推荐阅读
- java - 从另一个方法调用数组
- python - Python Flask 模板更新
- syntax-error - 重塑长多个变量时出错
- javascript - 当没有标识每一行的 ID 时,如何删除包含文件名的每一行(一次)?
- c - 数组的最小和分区
- elasticsearch - 仅使用 Logstash 向 ES 发送新数据,防止重复
- azure - Amazon Rekognition 或 Azure Cognitive Face 是否可以用于基于人脸识别的考勤系统
- php - 为什么这个 php 接口代码有效?
- sql - 错误返回所选日期
- c# - 使用下拉菜单索引删除列表成员正在删除保存数据中的整个列表