gpt4 book ai didi

regex - 根据 Bash 中的模式重命名目录

转载 作者:行者123 更新时间:2023-11-29 09:15:27 26 4
gpt4 key购买 nike

我有一个 Bash 脚本,可以很好地重命名符合条件的目录

for name in *\[*\]\ -\ *; do
if [[ -d "$name" ]] && [[ ! -e "${name#* - }" ]]; then
mv "$name" "${name#* - }"
fi
done

当前如果目录如下所示:

user1 [files.sentfrom.com] - Directory-Subject

它重命名目录并且只重命名目录

Directory-Subject (this could have different type of text)

如何将脚本/搜索条件更改为现在搜索

www.ibm.com - Directory-Subject

并将目录重命名为

Directory-Subject

最佳答案

你可以这样写你的代码,这样它就涵盖了这两种情况:

for dir in *\ -\ *; do
[[ -d "$dir" ]] || continue # skip if not a directory
sub="${dir#* - }"
if [[ ! -e "$sub" ]]; then
mv "$dir" "$sub"
fi
done

运行脚本之前:

$ ls -1d */
user1 [files.sentfrom.com] - Directory-Subject/
www.ibm.com - Directory-Subject

之后:

$ ls -1d */
Directory-Subject/
www.ibm.com - Directory-Subject/ # didn't move because directory existed already

关于regex - 根据 Bash 中的模式重命名目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42187913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com