首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重命名几个gopro文件

重命名几个gopro文件
EN

Stack Overflow用户
提问于 2020-01-12 21:44:10
回答 2查看 332关注 0票数 0

我有具有以下结构的视频文件:GX**####,其中####是视频的编号。但有时视频被分割成两个或三个文件,例如:GX01####GX02####,我的问题是,为了组织我的文件夹,我更喜欢把它们重命名为:GX####-1GX####-2

那么,我问您一个问题,我是否可以创建一个脚本/命令来自动重命名我的文件来完成这个任务?我可以使用.bat窗口文件或.sh linux文件。我的主要问题是,我不知道简单地重命名文件的命令(我看到了许多重写整个文件的解决方案)。如果你只知道这个,我就能完成我的剧本了。

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-13 01:53:26

您可以循环遍历文件,并使用PE参数展开对字符串进行切片和混叠,并使用mv重命名文件。

下面是一个示例,首先让我们使用触摸创建一个空文件,但首先我们需要创建一个新目录(您称之为文件夹),然后使用mkdir和cd进入新创建的目录。

代码语言:javascript
复制
mkdir newdirectory && cd newdirectory 

现在使用触摸创建空文件。

代码语言:javascript
复制
touch GX01#### GX02#### GX03#### GX04####

现在使用ls检查空文件。

代码语言:javascript
复制
ls *

输出应该类似于

代码语言:javascript
复制
GX01####  GX02####  GX03####  GX04####

现在我们已经创建了空文件,现在可以重新命名部分了。

代码语言:javascript
复制
for file in GX*; do
  file1="${file#*??}"
  file2=${file1#*??}
  file3=${file1%*$file2}
  echo mv -v "$file" "${file%*$file1}${file2}"-"$file3"
done

输出应该在stdout (这是您的屏幕),因为回声。

代码语言:javascript
复制
mv -v GX01#### GX####-01
mv -v GX02#### GX####-02
mv -v GX03#### GX####-03
mv -v GX04#### GX####-04

如果您对所看到的内容感到满意,那么删除回波,这样mv实际上可以重命名文件。这里展示了切片是如何完成的,这就是一个例子。

代码语言:javascript
复制
file=GX01####
file1="${file#*??}"
file2=${file1#*??}
file3="${file1%*$file2}"
printf '%s\n' "$file1" "$file2" "$file3"

输出应该类似于。

代码语言:javascript
复制
01####
####
01

表示来自shell的单个字符串。

一个警告和建议,备份您想要编辑的文件,以防shell在重命名文件时出错。:-)

另外,您可能应该使用shell全局化,如nullglob (请参阅

http://mywiki.wooledge.org/glob#nullglob

请参阅man并查找参数展开。

代码语言:javascript
复制
PAGER='less +/^[[:space:]]*parameter\ expansion' man bash

一些在线资源,有详细的解释和例子。

http://mywiki.wooledge.org/BashFAQ/073

https://wiki.bash-hackers.org/syntax/pe

票数 2
EN

Stack Overflow用户

发布于 2020-01-12 22:55:22

您可以回显原始文件名和新文件名:

代码语言:javascript
复制
for f in GX*; do
    echo "$f" $(sed 's/^GX\(..\)\(.*\)/GX\2-\1/' <<< "$f")
done

哪一项应产出:

代码语言:javascript
复制
GX01#### GX####-01
GX02#### GX####-02

然后使用mv -n而不是echo来重命名文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59708360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档