gpt4 book ai didi

bash - 为文件夹中的多个文件重命名并删除 _ 之前的每个字符

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

I found this post here,它适用于删除空格后的所有内容,但我无法对其进行逆向工程以批量删除文件夹中的下划线和它之前的所有内容。提到的帖子的终端线是

find . -type f -name "* *" -exec bash -c 'f="$1"; s="${f/_ / }"; mv -- "$f" "${s/ *./.}"' _ '{}' \;

所以我需要它是下划线而不是空格,我需要它在字符之前而不是之后删除。例如。如果文件名为:

random text _987media.mp4

我希望它被命名为:

987media.mp4

最佳答案

您可以使用 bash-internal parameter pattern substitution :

$ f='random text _987media.mp4'
$ echo "${f/*_/}"
987media.mp4

删除最后一个下划线之前的所有内容,包括下划线。

批量重命名所有包含 _ 的文件:

find . -type f -name "*_*" -exec bash -c 'f="$1"; g="${f/*_/}"; mv -- "$f" "$g"' _ '{}' \;

关于bash - 为文件夹中的多个文件重命名并删除 _ 之前的每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46447980/

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