LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1074|回复: 11

问题出在哪里

[复制链接]
发表于 2006-9-26 16:21:25 | 显示全部楼层 |阅读模式
移文件改名 想把当前目录的aa.abc 改为abc.ini  提示已经可以。但找不到改名的那个。请那位大侠看看


find . -type f -name "*.abc"| awk 'BEGIN{FS=".abc"};\
    {printf("mv %s.abc  %s.ini\n",$1,$1);}'
mv ./aa.abc.conf  ./aa.abc.ini


[root@linux tmp]# ls
@1981.0xf86config  aa  aa.abc  bb
发表于 2006-9-26 17:24:04 | 显示全部楼层
你这个只是print出来,不是执行命令。
批量改名用rename就行了

  1. test@server:~/test$ ls
  2. 2.bb  5.bb
  3. test@server:~/test$ ls |rename 's/.bb$/.xx/'     
  4. test@server:~/test$ ls
  5. 2.xx  5.xx
  6. test@server:~/test$

复制代码
回复 支持 反对

使用道具 举报

发表于 2006-9-26 23:22:28 | 显示全部楼层
想把当前目录的aa.abc 改为abc.ini
mv ./aa.abc.conf ./aa.abc.ini

这是什么意思?
回复 支持 反对

使用道具 举报

发表于 2006-9-26 23:31:17 | 显示全部楼层
貌似是脚本的输出
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-27 09:08:20 | 显示全部楼层
那我的这个语句上有错误吗。

find . -type f -name "*.abc"| awk 'BEGIN{FS=".abc"};\
{printf("mv %s.abc %s.ini\n",$1,$1);}'

执行后输出:mv ./aa.abc.conf ./aa.abc.ini

结果:
[root@linux tmp]# ls
@1981.0xf86config aa aa.abc bb
回复 支持 反对

使用道具 举报

发表于 2006-9-27 09:29:08 | 显示全部楼层
首先你那句代码不可能输出 mv ./aa.abc.conf ./aa.abc.ini
而应该输出 mv ./aa.abc ./aa.ini

再一个你那句代码只是执行了一个printf输出的命令,并没有执行mv移动文件的命令.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-27 10:13:53 | 显示全部楼层
那应该如何去做。谢谢 !!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2006-9-27 11:09:27 | 显示全部楼层
如果你就是想改一个文件的文件名那么简单, mv aa.abc aa.ini就行了啊.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-27 11:22:45 | 显示全部楼层
那我要改后缀名的 有很多的那样不得一个一个作吗

我又重新坐了一下。

[root@linux tmp]# ls
@1981.0xf86config  aa  aa.abc  bb  jd_sockV4  move.sh  saba  ssh-GKmn2867  ssh-Uyih2820  ssh-vvLY1957  ssh-xrp14899

[root@linux tmp]# find /tmp -type f -name "*.abc"\  | awk 'BEGIN{FS=".abc"};
{printf ("mv %s.abc %s.cba\n"$1$1);}'move.sh
awk: cmd. line:2: {printf ("mv %s.abc %s.cba\n"$1$1);}move.sh
awk: cmd. line:2:                                         ^ parse error
回复 支持 反对

使用道具 举报

发表于 2006-9-27 11:57:43 | 显示全部楼层
写个脚本吧

  1. #!/bin/bash
  2. find . -name "*.abc" -print |awk -F. '{print $2}'|sed 's/\///g' >file.tmp
  3. while read LINE
  4. do
  5. mv $LINE.abc $LINE.ini
  6. done < file.tmp
  7. rm -rf file.tmp
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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