简体   繁体   English

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

[英]Rename specific string from filename using shell script

I have to rename the filename with some specific keywords changed. 我必须使用更改的某些特定关键字来重命名文件名。

**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

Output FileName: 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 输出文件名: master_1800_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_2300_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_2300_addcarrier_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_2300_XNB_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_2300_XNB_addcarrier_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_850_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_850_addcarrier_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_IBS_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 120005.csv ma​​ster_Smallcell_ $(date -d '1 day ago' +%Y%m%d) -d'1 $(date -d '1 day ago' +%Y%m%d) 000500。 CSV

I tried using $(rename 's/20181217/20181218/' ) but no luck. 我尝试使用$(rename 's/20181217/20181218/' )但没有运气。

rename 20181217 20181218 master_*.csv可能会解决问题

This work: rename 's/20181217/20181218/' YOUR_FILE_NAME 这项工作:重命名's / 20181217/20181218 /'YOUR_FILE_NAME

Or you can use sed, before you redirect you output to the target file. 或者,您可以使用sed,然后再将输出重定向到目标文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM