gpt4 book ai didi

linux - 批量重命名具有不同扩展名的多个文件 Linux 脚本?

转载 作者:IT王子 更新时间:2023-10-29 00:58:02 25 4
gpt4 key购买 nike

我想编写一个 linux 脚本,它将所有具有相同文件名(但不同扩展名)的文件移动或复制到所有这些文件的新文件名,同时保持它们的不同扩展名。换句话说:

如果我从目录列表开始:

file1.txt, file1.jpg, file1.doc, file12.txt, file12.jpg, file12.doc

我想编写一个脚本来更改所有文件名而不更改扩展名。对于同一示例,选择 file2 作为新文件名,结果将是:

file2.txt、file2.jpg 和 file2.doc、file12.txt、file12.jpg、file12.doc

因此文件名不符合当前条件的文件将不会被更改。

祝愿

乔治

最佳答案

注意:如果变量i中有file1.doc,表达式${i##*.}提取扩展名即 doc 在这种情况下。


一线解决方案:

for i in file1.*; do mv "$i" "file2.${i##*.}"; done

脚本:

#!/bin/sh
# first argument - basename of files to be moved
# second arguments - basename of destination files
if [ $# -ne 2 ]; then
echo "Two arguments required."
exit;
fi

for i in $1.*; do
if [ -e "$i" ]; then
mv "$i" "$2.${i##*.}"
echo "$i to $2.${i##*.}";
fi
done

关于linux - 批量重命名具有不同扩展名的多个文件 Linux 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585441/

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