私のディレクトリには~/foo
多くのHTMLファイルが含まれています。それぞれに不要な要素が異なりますtitle
。つまり、各ファイルにはコードが含まれています。
<title>something unwanted</title>
これらのファイルの多くには、span
次の要素も含まれています。
<span class="org-document-info-keyword">#+Title:</span>
<span class="org-document-title">correct title</span>
title
すべてのHTMLファイルをスキャンし、2番目の種類のコードブロックを含むすべてのファイルの不要なコンテンツを正しいタイトルに置き換えるスクリプトを作成したいと思います。
ヘッダーを置き換えた後、スクリプトから2番目のブロックのコードを削除したいと思います。
たとえば、スクリプトを実行します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- Created by htmlize-1.47 in css mode. -->
<html>
<head>
<title>foo.org</title>
<style type="text/css">
<!--
body {
color: #839496;
background-color: #002b36;
}
.org-document-info {
/* org-document-info */
color: #839496;
}
.org-document-info-keyword {
/* org-document-info-keyword */
color: #586e75;
}
.org-document-title {
/* org-document-title */
color: #93a1a1;
font-size: 130%;
font-weight: bold;
}
.org-level-1 {
/* org-level-1 */
color: #cb4b16;
font-size: 130%;
}
a {
color: inherit;
background-color: inherit;
font: inherit;
text-decoration: inherit;
}
a:hover {
text-decoration: underline;
}
-->
</style>
</head>
<body>
<pre>
<span class="org-document-info-keyword">#+Title:</span> <span class="org-document-title">my desired title
</span><span class="org-document-info-keyword">#+Date:</span> <span class="org-document-info"><2015-08-23 Sun>
</span>
<span class="org-level-1">* hello world</span>
Vivamus id enim.
</pre>
</body>
</html>
結果が出なければならない
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- Created by htmlize-1.47 in css mode. -->
<html>
<head>
<title>my desired title</title>
<style type="text/css">
<!--
body {
color: #839496;
background-color: #002b36;
}
.org-document-info {
/* org-document-info */
color: #839496;
}
.org-document-info-keyword {
/* org-document-info-keyword */
color: #586e75;
}
.org-document-title {
/* org-document-title */
color: #93a1a1;
font-size: 130%;
font-weight: bold;
}
.org-level-1 {
/* org-level-1 */
color: #cb4b16;
font-size: 130%;
}
a {
color: inherit;
background-color: inherit;
font: inherit;
text-decoration: inherit;
}
a:hover {
text-decoration: underline;
}
-->
</style>
</head>
<body>
<pre>
<span class="org-document-info-keyword">#+Date:</span> <span class="org-document-info"><2015-08-23 Sun>
</span>
<span class="org-level-1">* hello world</span>
Vivamus id enim.
</pre>
</body>
</html>
これを簡単に実行できるツールはLinuxにありますか?
ベストアンサー1
おそらくスクリプトを書く方が良いでしょう。このスクリプトは強力ではありませんが(空の文字列をチェックせずに複数行の必須ヘッダーを考慮しないなど)、起動に役立ちます。サポートクレイジーを始める前に。
#! /bin/bash
FILES="./*.html"
for f in $FILES
do
grep '.*org-document-title">.*' $f |\
sed -e 's/.*org-document-title">\([^<]\+\).*/\n\1/g' |\
tail -n 1 |\
xargs -I new_title sed -i.bak 's/<title>[^>]\+<\/title>/<title>new_title<\/title>/g' $f
done
これはヘッダーを新しいヘッダーに置き換えるだけです。別の手順を実行し、不要な要素をmy desired title
削除してそれを拡張できます。span