问个问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
nangergong
帖子: 103
注册时间: 2008-09-19 3:26

问个问题

#1

帖子 nangergong » 2009-10-29 19:48

如何将当前目录下所有的文件名后缀改为.txt
上次由 nangergong 在 2017-02-07 5:28,总共编辑 1 次。
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

Re: 请问几个问题

#2

帖子 yaoms » 2009-10-29 19:49

for i in *; do mv $i $i.txt; done
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
wangjun403
帖子: 433
注册时间: 2009-07-06 14:26

Re: 请问几个问题

#3

帖子 wangjun403 » 2009-10-29 22:14

生命只不过是上帝借你一用的资本!
nangergong
帖子: 103
注册时间: 2008-09-19 3:26

Re: 请问几个问题

#4

帖子 nangergong » 2009-10-30 12:40

yaoms 写了:for i in *; do mv $i $i.txt; done
你这个是加后缀不是改后缀。。。。
t3swing
帖子: 1028
注册时间: 2008-11-01 21:42
来自: 树下板凳

Re: 请问几个问题

#5

帖子 t3swing » 2009-10-30 16:42

代码: 全选

rename  's/([^.]+).*/$1\.txt/' *
sw@/etc/network$pwd
/etc/network
sw@/etc/network$cat interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.74
netmask 255.255.255.0
network 192.168.1.1
gateway 192.168.1.1
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 请问几个问题

#6

帖子 aerofox » 2009-10-30 22:52

看具体要求。你说的改怎么理解(当文件名中没有句点时怎么处理),文件名怎么理解(这里的文件名是不是也包含子目录名)。

代码: 全选

rename 's/\..*$/.txt/' *.*
或
for f in *.*; do mv "%f" "${f%.*}.txt"; done
这个例子把所有带扩展名的文件(或目录)名的后缀改为.txt。
回复