使用Shell脚本从文件名重命名特定的字符串

时间:2018-12-18 05:30:16

标签: bash shell

我必须在更改某些特定关键字的情况下重命名文件名。

**Input FileName :**
master_1800_20181217120005.csv
master_2300_20181217120005.csv
master_2300_addcarrier_20181217120005.csv
master_2300_XNB_20181217120005.csv
master_2300_XNB_addcarrier_20181217120005.csv
master_850_20181217120005.csv
master_850_addcarrier_20181217120005.csv
master_IBS_20181217120005.csv
master_Smallcell_20181217000500.csv

输出文件名: master_1800 _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_2300 _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_2300_addcarrier _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_2300_XNB _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_2300_XNB_addcarrier _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_850 _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_850_addcarrier _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_IBS _ $(date -d '1 day ago' +%Y%m%d) 120005.csv master_Smallcell _ $(date -d '1 day ago' +%Y%m%d) 000500.csv

我尝试使用$(rename 's/20181217/20181218/' ),但没有运气。

2 个答案:

答案 0 :(得分:1)

rename 20181217 20181218 master_*.csv可能会成功

答案 1 :(得分:1)

这项工作:将“ s / 20181217/20181218 /”重命名为YOUR_FILE_NAME

或者,您可以使用sed,然后再将输出重定向到目标文件。