gpt4 book ai didi

bash - 重命名子目录中的所有文件,同时保持相同的位置

转载 作者:行者123 更新时间:2023-11-29 09:46:17 31 4
gpt4 key购买 nike

在我的父文件夹中,我有一个脚本和许多文件夹。在这些文件夹中包含任意命名的文本文件。当我运行我的脚本以重命名文件时,新重命名的文件最终位于父文件夹中。如何编写脚本以使新命名的文件保留在其原始文件夹中?

for file in $(find . -type f -name '*txt') ; do
name=$(parse text for correct name)
mv "$file" "${name}.txt"
done

最佳答案

您最大的挑战是简单地将 path 与原始 filename 分开,这样您就可以将原始文件移动到 path/name.txt。您可以使用参数扩展/子字符串删除 来完成任务,例如(line 为读取的原始文件名)

while read -r line; do
name=$(parse text for correct name) # parse your new name as needed
fname="${line##*/}" # isolate the filename in line
dname="${line%"$fname"}" # remove fname from end of line for path
mv "$line" "${dname}/${name}.txt"
done < <(find . -type f -name '*txt')

关于bash - 重命名子目录中的所有文件,同时保持相同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41606101/

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