重命名和修剪多个文件一次使用unix命令

qnakjoqk  于 2023-03-22  发布在  Unix
关注(0)|答案(2)|浏览(136)

我有一些文件有图案作为名称

xyz_00011111_03202023_en-GB.pdf

我想将其重命名并修剪为

abc_00011111

所有的xyzabc,并希望删除同一目录中所有文件名称中的日期和国家代码
我正在尝试这样的东西

$ for f in *.pdf; do mv "$f" $(echo $f | tr 'xyz' 'abc'); done
brc7rcf0

brc7rcf01#

使用Perl的rename

$ rename -n 's/^xyz/abc/; s/\d{8}_[a-z]{2}-[A-Z]{2}\.pdf//' ./xyz_*.pdf 
rename(xyz_00011111_03202023_en-GB.pdf, abc_00011111)

删除-n开关,又名 * 试运行 * 当您的尝试是令人满意的重命名为真实的的

0yg35tkg

0yg35tkg2#

$ for f in *.pdf; do mv -i "$f" $(echo $f | tr 'REQ' 'EQR' | sed -r 's/([^_]+_[^_]*).*/\1/'); done

这一个是工作,但其删除的文件扩展名,我怎么能保持扩展

相关问题