gpt4 book ai didi

linux - 通过交换文本重命名文件

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

我需要通过交换一些文本来重命名文件。我有例如:

CATEGORIE_2017.pdf
CLASSEMENT_2016.pdf
CATEGORIE_2018.pdf
PROPRETE_2015.pdf
...

我想要他们

2017_CATEGORIE.pdf
2016_CLASSEMENT.pdf
2018_CATEGORIE.pdf
2015_PROPRETE.pdf

我想出了这个 bash 版本:

ls *.pdf | while read i
do
new_name=$(echo $i |sed -e 's/\(.*\)_\(.*\)\.pdf/\2_\1\.pdf/')
mv $i $new_name
echo "---"
done

它很有效率,但对我来说似乎很笨拙。有没有人有更聪明的解决方案,例如 rename

最佳答案

使用 rename 你可以像这样重命名:

rename -n 's/([^_]+)_([^.]+).pdf/$2_$1.pdf/g' *.pdf

选项 -n 什么都不做,它只是打印将要发生的事情。如果您满意,请删除 -n 选项。

我使用 [^_]+[^.]+ 来捕获 _ 前后的文件名部分.语法 [^_] 意味着除 _ 之外的所有内容。

关于linux - 通过交换文本重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626002/

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