我有相同的外观,但完全不同的4个文件。
> _palus_SLA_response_pages_main_2c3cd_2_18.tokudb
> _palus_SLA_response_pages_status_2c3cd_1_18.tokudb
> _palus_SLA_response_pages_main_51fdda_2_18.tokudb
> _palus_SLA_response_pages_status_51fdda_1_18.tokudb
我需要将具有代码“ 51fdda ”的所有文件替换为另一个“ 2c3cd ”。 因此,新代码将使用旧代码覆盖文件,并且只剩下2个文件:
_palus_SLA_response_pages_main_2c3cd_2_18.tokudb
_palus_SLA_response_pages_status_2c3cd_1_18.tokudb
我可以一次移动一个文件,就像这样......
mv "_palus_SLA_response_pages_main_51fdda_2_18.tokudb" "_palus_SLA_response_pages_main_2c3cd_2_18.tokudb"
mv "_palus_SLA_response_pages_status_51fdda_1_18.tokudb" "_palus_SLA_response_pages_status_2c3cd_1_18.tokudb"
但是手动一次移动的文件太多了。我需要一个可以为我做这个的脚本。
答案 0 :(得分:2)
如果您有rename
命令,则可以使用:
rename 51fdda 2c3cd *tokudb
如果您没有可用的重命名命令,可以通过一个简单的循环执行此操作:
for file in *51fdda*.tokudb; do
mv ${file} ${file/51fdda/2c3cd}
done
有关此第二个解决方案的更多信息,请参阅bash(1)
手册页的“Brace扩展”部分。