gpt4 book ai didi

regex - 修剪长文件名的名称[重命名]

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:08 24 4
gpt4 key购买 nike

我有很多文件需要重命名。我看到的所有教程都只列出了向旧文件名附加内容的列表。例如从 abc.txtunix_abc.txtabc_unix.txt。我知道我必须使用正则表达式,但我无法写出准确的表达式。

for FILENAME in *; do mv $FILENAME {SOME_EXPRESSION_HERE}; done

这个表达式怎么写?我能想到这个表达

Unix_Unix_[0-9][0-9][0-9]_without_dash_file.pdf

我的文件名是

Unix_Unix_1_without_dash_file.pdf
Unix_Unix_10_without_dash_file.pdf
Unix_Unix_100_without_dash_file.pdf

我需要它像

1.pdf
10.pdf
100.pdf

那只是文件名之间的数字。

感谢您的帮助。

最佳答案

能否请您尝试执行以下命令,如果这对您有帮助,请告诉我。我现在正在打印 mv 命令,如果您认为它是正确的,您可以删除 echo

for file in Unix*.pdf
do
temp="${file/_without*/}"
echo "mv $file ${temp##*_}.pdf"
done

输出如下。

mv Unix_Unix_100_without_dash_file.pdf 100.pdf
mv Unix_Unix_10_without_dash_file.pdf 10.pdf
mv Unix_Unix_1_without_dash_file.pdf 1.pdf

注意: 如上所述,一旦您对上述命令感到满意,请从 echo "mv $file ${temp ##*_}.pdf" 行,然后将其更改为 mv "$file""${temp##*_}.pdf" 它将重命名这些文件。

关于regex - 修剪长文件名的名称[重命名],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51172570/

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