LinuxSir.cn,穿越时空的Linuxsir!

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

批量大写转小写的问题

[复制链接]
发表于 2004-8-23 10:37:18 | 显示全部楼层 |阅读模式
我想把一个目录下的html文件里的有关*.htm的link全部从大写改成小写,这个script应该怎么写?
比如"Link.htm",要改成"link.htm"
发表于 2004-8-23 12:58:10 | 显示全部楼层
use tr
 楼主| 发表于 2004-8-23 13:19:20 | 显示全部楼层
我用sed实现的,不过为了准确匹配,我这样写
sed 's/[_a-zA-Z0-9]+\.htm/\L&/g'>tmp0;

而我的html文件里面有这样一段
<td class="menucell" width="103"><a class="Mainmenu" href="AppGaming.htm">Applications&amp;<br>Gaming</a></td>

按我的本意,AppGaming.htm应该变成appgaming.htm,奇怪的是却没变,不知道是什么原因
 楼主| 发表于 2004-8-23 13:42:22 | 显示全部楼层
解决了,原来sed的regexp有点不一样'+'应该表示成'\+'
发表于 2004-8-23 13:45:31 | 显示全部楼层
用awk的tolower函数也许方便些 ;)

  1. /home/lee/test#awk '{for(i=1;i<=NF;i++)if($i~/htm/)print tolower($i);else printf $i" "}' file
  2. <td class="menucell" width="103"><a class="Mainmenu" href="appgaming.htm">applications&<br>gaming</a></td>
复制代码
 楼主| 发表于 2004-8-23 15:25:55 | 显示全部楼层
可我要求的是只能更改*.htm自段,其他的不能变化啊.楼上的例子把后面的也变成小写了.
发表于 2004-8-23 20:15:58 | 显示全部楼层
最初由 fog_proxy 发表
可我要求的是只能更改*.htm自段,其他的不能变化啊.楼上的例子把后面的也变成小写了.

sorry 那还是用sed吧 ;)
发表于 2004-8-30 15:16:25 | 显示全部楼层
晕`~~没看懂~~~有没有什么初级教材推荐一下啊?
这方面的~
发表于 2004-8-30 15:19:43 | 显示全部楼层
最初由 yysn 发表
晕`~~没看懂~~~有没有什么初级教材推荐一下啊?
这方面的~

呵呵~~~
请搜索论坛的置顶,看看论坛里的精华区的贴子,那里有很多很多 ... goodluck
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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