LinuxSir.cn,穿越时空的Linuxsir!

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

如何将.html文件的名称改为其title的名称?

[复制链接]
发表于 2006-6-15 19:54:20 | 显示全部楼层 |阅读模式
我现在有001.htm 002.htm等文件若干,现想把所有文件的名称改为该文件title的名称,如何操作?
发表于 2006-6-15 22:04:30 | 显示全部楼层
我觉得这个用shell很难,可能需要用到Perl的HTML:arser。

http://search.cpan.org/~gaas/HTML-Parser-3.35/Parser.pm#EXAMPLES
回复 支持 反对

使用道具 举报

发表于 2006-6-16 01:00:46 | 显示全部楼层
恩,单纯的正则估计很不好解决问题的所有情况,比如出现在HTML注释里面的<title>标签之类的。但是 Unix 的哲学鼓励实现问题的大部分,因为这样通常把难度降低了不止一个数量级,而对于那些特殊情况,通常不去处理或者重新采用另外的方法特殊处理。因此,我觉得,这儿的情况与其 perl 或者 python 的 HTML 解析功能做个很完美的东西而花很多时间,到不如专注于目前现实的工作,直接用正则匹配的方法处理。
回复 支持 反对

使用道具 举报

发表于 2006-6-17 19:30:13 | 显示全部楼层
写个shell程序就可以,下面这个句子可以取出title中的内容,希望对你有帮助

  1. find /root/html -name "*.html" -print | xargs grep "<TITLE>" | awk -F ">" '{print $2}' | awk -F "<" '{print $1}'
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-6-17 19:36:22 | 显示全部楼层
你想得太简单了

  1. <title>
  2. foo bar
  3. </title>
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-6-17 19:41:02 | 显示全部楼层
那你可以分两次来查找,同时把<TITLE>改为<title>就可以
回复 支持 反对

使用道具 举报

发表于 2006-6-17 19:56:20 | 显示全部楼层
  1. <title>test page
  2. </title>
复制代码


也不是不可以,title element还可以包括character entity

  1. <title>seamonkey价值\&\#\1\6\5\;1000000000000</title>
复制代码


s/\\//

论坛怎么转义character entity?
回复 支持 反对

使用道具 举报

发表于 2006-6-17 20:10:15 | 显示全部楼层
这个应该没有关系吧,我是以">"和"<"来判断的,如果在title element中含有这个2个字符的话就会取的内容不对。
回复 支持 反对

使用道具 举报

发表于 2006-6-17 20:22:07 | 显示全部楼层
character entity先不去管它,你的办法太简单了,不行的

  1. <head><title>some text</title><head>
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-6-17 20:29:22 | 显示全部楼层
分析html超出了shell utilities的能力范围。
回复 支持 反对

使用道具 举报

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

本版积分规则

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