Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2044898
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-09-03 11:33:15

[] [] [] [] []

风云使者



CU编号: 710202
注册:2008-5-26
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 16:35 

在file目录里,有一些文件假如名字是
file.ext.**************

后面14未是“YYYYMMDDHHMMSS"就是14位的时间

求一个shell脚本把这些文件的后面.**************去掉

例如file.ext.20090902163435改成file.ext

谢谢了



您对本贴的看法:

__________________________________

我喜欢面临人生中更多的悬崖绝壁,因为这样我可以成长的更快!
| | |

风云使者
请不要亵渎圣灵



CU编号: 199500
注册:2004-11-15
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 16:44 

awk -F. '{print $1"."$2}'



您对本贴的看法:

__________________________________

努力中
| | |

风云使者



CU编号: 710202
注册:2008-5-26
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 16:53 

感谢楼上,问题已经解决
我的程序是
cd file
for file in *
do
    newfile=`echo $file | awk -F. '{print$1"."$2}"
    mv -f $file $newfile
done
exit



您对本贴的看法:

__________________________________

我喜欢面临人生中更多的悬崖绝壁,因为这样我可以成长的更快!
| | |

圣骑士




CU编号: 580155
注册:2007-6-26
最后登录: 2009-09-03
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 16:55 

回复 #1 c/unix 的帖子

ls | awk -F"." '{system("mv "$0" "$1"."$2)}'



您对本贴的看法:
| | |

风云使者
请不要亵渎圣灵



CU编号: 199500
注册:2004-11-15
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 16:59 

for a in *;do mv $a $(echo $a|awk -F. '{print $1"."$2}');done
现实环境最好注意看看前缀,如果文件前两列相同将只剩下一个文件
aa.txt.123
aa.txt.332



您对本贴的看法:

__________________________________

努力中
| | |
  帅哥
圣骑士



CU编号: 753645
注册:2008-8-29
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 17:00 

回复 #5 xiaobaibbb 的帖子

LS想的真周到。



您对本贴的看法:
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-09-03
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 17:05 

直接用rename不行?



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.  DRY


| | |

圣骑士




CU编号: 580155
注册:2007-6-26
最后登录: 2009-09-03
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 17:09 

回复 #7 blackold 的帖子

我的环境没rename,
mv是不是只改文件名的,不实际移动文件的?



您对本贴的看法:
| | |
  帅哥
光明使者




CU编号: 165273
注册:2004-6-16
最后登录: 2009-09-03
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 17:12 



QUOTE:
原帖由 c/unix 于 2009-9-2 16:53 发表
感谢楼上,问题已经解决
我的程序是
cd file
for file in *
do
    newfile=`echo $file | awk -F. '{print$1"."$2}"
    mv -f $file $newfile
done
exit

简洁点吧:


eval ls | awk -F. '{print "mv "$0" $1"."$2}'



您对本贴的看法:

__________________________________

a huge one-time effort gives you nothing, while small, everyday activities will give you a lot
| | |

精灵王
Loa



CU编号: 1650889
注册:2009-5-16
最后登录: 2009-09-03
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 17:29 

回复 #3 c/unix 的帖子

cd file
for file in *
do
    mv -f $file ${file%.*}
done
exit



您对本贴的看法:

__________________________________

我觉得我还可以抢救一下...............
[] [] [] [] []

新手




CU编号: 2360649
注册:2009-8-17
最后登录: 2009-09-03
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 17:29 



QUOTE:
原帖由 nhw_cs 于 2009-9-2 17:12 发表


简洁点吧:


eval ls | awk -F. '{print "mv "$0" $1"."$2}'

简洁到可以省略一个"



您对本贴的看法:
| | |
  帅哥 (同态)
风云使者



CU编号: 451045
注册:2006-8-7
最后登录: 2009-09-02
帖子:
精华:0







来自:北京
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 21:02 

shell 版兴旺发达。



您对本贴的看法:

__________________________________

  漂泊一生~~  
   
| | |

精灵




CU编号: 358466
注册:2006-1-4
最后登录: 2009-09-03
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-3 07:52 

for x in `ls file.*`;do mv $x `echo $x|sed -e 's/\(.*\)\.[0-9]*/\1/'`;done

通用点的...
file.日期
file.file.file.日期 同时存在的情况



您对本贴的看法:
| | |
  帅哥
光明使者




CU编号: 690903
注册:2008-4-13
最后登录: 2009-09-03
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-9-3 11:10 



QUOTE:
原帖由 nhw_cs 于 2009-9-2 17:12 发表


简洁点吧:


eval ls | awk -F. '{print "mv "$0" $1"."$2}'

哥们,你的什么环境:
[jesse@localhost shell_scri]$ ls
file.ext.20090902163435
[jesse@localhost shell_scri]$ eval ls | awk -F. '{print "mv "$0" "$1"."$2}'
mv file.ext.20090902163435 file.ext
[jesse@localhost shell_scri]$ ls
file.ext.20090902163435
我的bash 跑不起来。



您对本贴的看法:
| | |
  帅哥
光明使者




CU编号: 690903
注册:2008-4-13
最后登录: 2009-09-03
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-9-3 11:14 



QUOTE:
原帖由 shiyan0204 于 2009-9-2 17:29 发表


简洁到可以省略一个"

加上一个引号,你的能跑成功吗?



您对本贴的看法:
| | |

» » »
阅读(707) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~