免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: zhangheng520
打印 上一主题 下一主题

批量替换文件名字 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2010-05-03 10:41 |只看该作者
回复  lltlk


不使用别名
Shell_HAT 发表于 2010-05-03 00:06


你是指alias "ll =ls -l" 吗?这里并没有用到啊
另外,我观察了一下,ls -l 与\ls -l 的结果区别是:
ls -l显示目录  
\ls -l不显示目录
求\的出处。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
32 [报告]
发表于 2010-05-03 11:25 |只看该作者
回复 31# lltlk


运行alias命令,结果贴出来看看?

论坛徽章:
0
33 [报告]
发表于 2010-05-06 17:44 |只看该作者
回复 32# Shell_HAT
  1. $alias
  2. alias cp='cp -i'
  3. alias l.='ls -d .* --color=tty'
  4. alias ll='ls -l --color=tty'
  5. alias ls='ls --color=tty'
  6. alias mv='mv -i'
  7. alias rm='rm -i'
  8. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
复制代码

论坛徽章:
0
34 [报告]
发表于 2010-05-06 17:53 |只看该作者
ls *txt|awk 'BEGIN{i=0;}{i++;print "mv "$0" "i".txt"}'|sh

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
35 [报告]
发表于 2010-05-06 21:33 |只看该作者
回复 33# lltlk


现在明白了吗?你运行ls时实际执行的是ls --color=tty,\ls这个写法可以忽略别名。

论坛徽章:
0
36 [报告]
发表于 2010-05-07 19:00 |只看该作者
回复  lltlk


现在明白了吗?你运行ls时实际执行的是ls --color=tty,\ls这个写法可以忽略别名。
Shell_HAT 发表于 2010-05-06 21:33



    具体的表现是什么?

论坛徽章:
0
37 [报告]
发表于 2010-05-07 19:03 |只看该作者
回复  lltlk


现在明白了吗?你运行ls时实际执行的是ls --color=tty,\ls这个写法可以忽略别名。
Shell_HAT 发表于 2010-05-06 21:33



    是不是\ls  =ls
             ls  = ls --color=tty

          ??

论坛徽章:
0
38 [报告]
发表于 2010-05-09 13:31 |只看该作者
#!/bin/bash
cd /home
declare b
ls|grep .txt>/home/txt
num=`ls |grep .txt|wc -l`
for(( i=1;i <= $num; i=i+1 ))
do
        b="`sed -n "${i}p" /home/txt`"
        mv $b $i.txt
done
#########################
########ITAA红火 奉献########      


以上代码本人已测试,没有问题,成功转换

论坛徽章:
0
39 [报告]
发表于 2010-05-09 13:37 |只看该作者
不过我觉的楼上的AWK截取替换最简单
ls *txt|awk 'BEGIN{i=0;}{i++;print "mv "$0" "i".txt"}'|sh
通过对txt文件的$0比对,将所有txt文件i++变量替换

论坛徽章:
0
40 [报告]
发表于 2010-05-09 13:43 |只看该作者
但如果每个TXT文件内容不同,并按aaa.txt 对应1.txt hhhh.txt 对应2.txt,这样有要求更改的话,最好通过事先建立好的内容列表,通过SED读取循环更改





++++++++++++++++++++++++++++++++++
ITAA红火   崇尚自由,三人行必有吾师
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP