Bash脚本: 当将表目录中的每个文件复制到目标时,需要将其从键空间重命名为newkyespace_456。
└── Main_folder
├── keyspace
│ ├── tableA-12323/keyspace-tableA-12323-ka-1-Data.db
│ ├── tableB-123425/keyspace-tableA-123425-ka-1-Data.db
│ └── tableC-12342/keyspace-tableA-12342-ka-1-Data.db
└── newkeyspace_456 ( given folder) and sub folders
├── tableA-12523
├── tableB-173425
└── tableC-1242
示例是
keyspace/tableA-12323/keyspace-tableA-12323-ka-1-Data.db
至
newkeyspace_456/tableA-12523/newkeyspace_456-tableA-12523-ka-1-Data.db
请注意,可以将相同的表(类型A,B,C)类型复制到其他键空间(类型A,B,C)中的相同表类型。表名也需要更改文件名,请注意示例12323在复制到diretory newkeyspace_456 / tableA-12523时已重命名为12523。
类型A表文件可以从keypace / tableA-12323复制到newkeyspace_456 / tableA-12523中的Type A表文件。
如何处理此问题?
由于 汤姆
答案 0 :(得分:1)
使用带字符串替换的参数扩展来更改文件名,如下所示:
for fn in $(find ./keyspace -path '*.db') ; do cp "$fn" "${fn//keyspace/newkeyspace_456}" ; done ;