我想使用HTML标题标签和发布日期来重命名HTML文件。
我在这里使用标题标签找到了标题的答案:
修改后的代码:
#!/bin/bash
for f in $(find . -type f | grep \.html)
do
title=$( awk 'BEGIN{IGNORECASE=1;FS="<title>|</title>";RS=EOF} {print $2}' "$f" )
mv -i "$f" "${title//[ ]/-}".html
done
Renaming HTML files using <title> tags
不确定日期部分如何工作。
结果将是title_PublicationDate.html
以下是示例网址:https://www.voltairenet.org/article178442.html
该名称将从“ article178442.html”重命名为“ Paul Craig Roberts_20130508.html的You Are the Hope”
以下是其中包含发布日期的行:
第19行:
<meta property="og:article:published_time" content="2013-05-07T23:31:07Z" />
第207行:
<span class="updated" title="2013-05-8"><time datetime="2013-05-08 02:31:07" pubdate>| 8 May 2013</time></span></span>
编辑:是否可以使用Open Graph标签使用python和漂亮的汤来做到这一点?
答案 0 :(得分:1)
您可以使用meta标签中的sed来增加发布日期:
<meta property="og:article:published_time" content="2013-05-07T23:31:07Z" />
将sed
脚本用于YYYYMMDD中的额外pub_date
pub_date=$(sed -n -e 's/.*meta property.*published_time.*\([0-9][0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\).*/\1\2\3/p')
代码是“机会主义的”,并且假定meta标签的结构非常特殊。但是,对于快速又肮脏的解决方案-它会起作用。使用$ pub_date构造文件名
答案 1 :(得分:1)
我花了一些时间进行猜测,您的问题不是很清楚,但是我得出了以下解决方案:
我制作了一个名为renamer的git repo。可以从包含所有索引文件的文件夹内部运行此快速小脚本,它将提取文件夹中的所有.html文件,并将它们重命名为相应html文件的<title>
标签内的文本以及它的发布日期,这是我从html文件中的meta标签之一获取的。该脚本假定html元素中的meta标签结构,因此只要meta标签结构保持不变,它就应该起作用。
注意: 从github下载的文件必须放在html文件目录内的文件夹中(请参见下图)
您可能已经知道,但是将文件放置在文件夹中后,请在程序的文件夹中运行npm install
。这将安装所有必需的依赖项,在这种情况下为file-system
,path
和readline
。
要运行该程序,请在程序文件夹中输入node main
,如此一来,父文件夹中的所有html文件都将被重命名。
理论上,您也应该能够将程序保留在索引文件所在的文件夹中,以备将来使用。如果以后需要快速更改一些名称,非常方便:)
希望我回答了你的问题。