我有一个/tmp/foo_primary.bar
默认命名的文件或用户指定的任何其他文件名。
我如何使用bash重命名文件(变量),以便如果它包含字符串primary
,它将更改为secondary
,如果不包含,则只需追加_secondary
?
谢谢
您不需要正则表达式,可以使用模式:
#!/bin/bash
filepath=$1
if [[ $filepath != */* ]] ; then # File in PWD.
filepath=./$filepath
fi
filename=${filepath##*/}
if [[ $filename = *primary* ]] ; then
newname=${filename/primary/secondary}
else
newname=$filename'_secondary'
fi
mv "$filepath" "${filepath%/*}"/"$newname"
检查“参数扩展”中man bash
有关结构的说明${...}
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句