QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1181|回复: 14

一个批量重命名的问题,想知道能不能用BASH的脚本来实现

[复制链接]
发表于 2003-11-5 18:59:27 | 显示全部楼层 |阅读模式
现有文件格式:"a-b.c"
目的文件格式:"a - b.c"

也就是在"-"前后各插入一个空格,请各位大虾不吝赐教!
 楼主| 发表于 2003-11-11 00:03:09 | 显示全部楼层
no one?
回复

使用道具 举报

发表于 2003-11-11 08:55:50 | 显示全部楼层

Re: 一个批量重命名的问题,想知道能不能用BASH的脚本来

[quote:c2d2dc3c92="redhat71"]现有文件格式:"a-b.c"
目的文件格式:"a - b.c"

也就是在"-"前后各插入一个空格,请各位大虾不吝赐教![/quote]
文件名可以使用空格吗?
回复

使用道具 举报

 楼主| 发表于 2003-11-12 01:47:06 | 显示全部楼层
大虾没出现,倒引出一位小白来。。。呵呵
回复

使用道具 举报

发表于 2003-11-17 00:53:23 | 显示全部楼层

Re: 一个批量重命名的问题,想知道能不能用BASH的脚本来实现

[quote:3b27b70f5d="redhat71"]现有文件格式:"a-b.c"
目的文件格式:"a - b.c"

也就是在"-"前后各插入一个空格,请各位大虾不吝赐教![/quote]
用rename命令

rename b -b (某个目录下的所有文件名)

比如

rename htm html /mnt/*
回复

使用道具 举报

 楼主| 发表于 2003-11-17 15:43:39 | 显示全部楼层
man了一下,但没看明白怎么在我的例子里应用

比如说,目前是这样
[email@redhat71 /tmp/123]$ ls
a-1.mp3  b-2.mp3

期待的结果是这样
[email@redhat71 /tmp/123]$ ls
a - 1.mp3  b - 2.mp3

如何用rename实现?
回复

使用道具 举报

发表于 2003-11-17 16:15:39 | 显示全部楼层
为什么要搞这么变态的带个空格的文件名字?
不过空格也许可用\加上空格也引用,good luck。
rename a-1.mp3 a\ -\ 1.mp3
回复

使用道具 举报

 楼主| 发表于 2003-11-18 08:39:40 | 显示全部楼层
[quote:4f6a5a41b9="UMBRO"]为什么要搞这么变态的带个空格的文件名字?
[/quote]

因为我喜欢。。。

不过空格也许可用\加上空格也引用,good luck。


不是也许,是当然可以,我上面都已经列出来了带空格的文件名

rename a-1.mp3 a\ -\ 1.mp3


看清楚问题,我说的是批量,不是手动一个个改
回复

使用道具 举报

发表于 2003-11-18 13:28:33 | 显示全部楼层
fancyworld test $ touch a-1.mp3
fancyworld test $ touch b-2.mp3
fancyworld test $ ls
a-1.mp3  b-2.mp3
fancyworld test $ rename - " - " *
fancyworld test $ ls
a - 1.mp3  b - 2.mp3
回复

使用道具 举报

发表于 2003-11-18 14:26:53 | 显示全部楼层
也可以这样:先枚举目录中的每个文件名,然后对这个字符串进行变换,然后使用mv命令改名。
去熟悉shell基础编程先.
回复

使用道具 举报

发表于 2003-11-18 15:51:42 | 显示全部楼层
[quote:c3abfc7e85="redhat71"][quote:c3abfc7e85="UMBRO"]为什么要搞这么变态的带个空格的文件名字?
[/quote]

因为我喜欢。。。

不过空格也许可用\加上空格也引用,good luck。


不是也许,是当然可以,我上面都已经列出来了带空格的文件名

rename a-1.mp3 a\ -\ 1.mp3


看清楚问题,我说的是批量,不是手动一个个改[/quote]
我是举个例子,rename的帮助文件你看不懂怪谁?把一个简单的东西弄得那么复杂还觉得自己挺牛B。
回复

使用道具 举报

 楼主| 发表于 2003-11-19 10:38:17 | 显示全部楼层
[quote:82c6c81a66="UMBRO"]
我是举个例子,rename的帮助文件你看不懂怪谁?把一个简单的东西弄得那么复杂还觉得自己挺牛B。 [/quote]

没有你举的例子牛B,简直是提壶灌顶。。。这样的回答实在是难得一见!
回复

使用道具 举报

 楼主| 发表于 2003-11-19 10:40:06 | 显示全部楼层
[quote:446045c078="lucida"]fancyworld test $ touch a-1.mp3
fancyworld test $ touch b-2.mp3
fancyworld test $ ls
a-1.mp3  b-2.mp3
fancyworld test $ rename - " - " *
fancyworld test $ ls
a - 1.mp3  b - 2.mp3[/quote]

谢谢!
回复

使用道具 举报

 楼主| 发表于 2003-11-19 10:43:26 | 显示全部楼层
[quote:faa33642ca="oklqh"]也可以这样:先枚举目录中的每个文件名,然后对这个字符串进行变换,然后使用mv命令改名。
去熟悉shell基础编程先.[/quote]

有想过这条路,但对SHELL的了解太少,不足以自己解决

既然RENAME可以很方便地实现,暂时就先用它了。。。
回复

使用道具 举报

发表于 2003-11-19 15:40:40 | 显示全部楼层
就是用 \ 或者是""和''来把它们的特殊意义给屏蔽掉!我是小白,不知道对不对?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-20 15:38 , Processed in 0.051188 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表