如何使用 bash 重命名文件以保留文件名的前 15 个字符并将其余字符替换为单个单词?

How do I rename a file using bash that keeps the first 15 characters of filename and replaces the rest with a single word?

我正在尝试重命名 nifti 文件,目的是保留文件名的前 15 个字符(随机并指示主题 ID)并将文件的其余部分重命名为“scan_name.nii.gz”?

for i in `ls ${dir}/nifti_loc`; do echo ${i};  
for j in `ls ${dir}/nifti_loc/*MPRAGE*.nii.gz | grep -v -i AXI`; do   
cp ${j} ${dir}/nifti_loc/rename/${j}\_mprage.nii.gz;  
done;  
done;

这是否提供了您预期的结果?

cd "${dir}"/nifti_loc

for f in *MPRAGE*.nii.gz
do
    mv "$f" "${f:0:15}_scan_name.nii.gz"
done