我想重命名如下所述的文件名
如果文件名是abc_test_tt_3447.txt我想要 abc_tt_3447.txt
如果文件名是abc_test_ff_tt_3447.txt我想要 abc_tt_3447.txt
如果我想将test和test_ff替换为空
我已尝试使用sed命令
答案 0 :(得分:0)
使用bash之一:
shopt -s extglob
for file in *_test*; do
echo mv -- "$file" "${file//_test?(_ff)/}""
done
或:
for file in *_test*; do
[[ $file =~ (.*)_test(_ff)?(.*) ]] &&
echo mv -- "$file" "${BASH_REMATCH[1]}${BASH_REMATCH[3]}"
done
完成测试后,删除echo
。