Chinaunix

标题: 文件更名去除文件名的前面部分 [打印本页]

作者: jiadingjun    时间: 2007-05-04 05:19
标题: 文件更名去除文件名的前面部分
请教一下,我有一些这样的文件

Prudentius 001r.jpg
Prudentius 001v.jpg
Prudentius 002r.jpg
Prudentius 002v.jpg
Prudentius 003r.jpg
Prudentius 003v.jpg

想把它们更名为
001r.jpg
001v.jpg
002r.jpg
002v.jpg
003r.jpg
003v.jpg

只知道一点皮毛,${}可以匹配变量的一部分,但不知道如何匹配文件命中空格之后的部分。
各位指点一下吧,多谢!

[ 本帖最后由 jiadingjun 于 2007-5-4 05:22 编辑 ]
作者: 大蚂蚁    时间: 2007-05-04 05:48
  1. ls Prudentius*  |awk '{print $2}' | xargs -i  mv "Prudentius {}" {}
复制代码

作者: jiadingjun    时间: 2007-05-04 06:44
虽然不是${}的用法,还是管用,多谢!
作者: mcknight    时间: 2007-05-04 20:22

  1. a="Prudentius 001.jpg"
  2. echo ${a##* }
复制代码

作者: zanefei    时间: 2007-05-05 00:57
echo "Prudentius 001r.jpg"| sed 's/.*\ \(.*\)/\1/'

sed也可以达到效果的
作者: 寂寞烈火    时间: 2007-05-05 01:06
ls *.jpg|awk '{print "mv \042"$0"\042",$2}'|sh
作者: jiadingjun    时间: 2007-05-05 03:26
多谢各位的各种方法。
寂寞烈火 法王的表达式中的awk所涉及的

'{print "mv \042"$0"\042",$2}'

不太理解,能不能简单解释一下?
多谢!
作者: 寂寞烈火    时间: 2007-05-05 09:21
\042就是双引号的8进制代码, 因为你的文件名含有空格, 所以mv的时候必须用引号括起来
作者: jlboy    时间: 2007-05-05 21:22
果然是法王啊,利害




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2