2

index.htmlURLを含むファイルがあります。例

    <!-- UC -->
        <A href="uc/live/current/index.html" >UC Live</A>&nbsp
        <A href="uc/live/" >(All months)</A><br>
    <!-- VI -->
        <A href="vi/live/current/index.html" >VI Live</A>&nbsp
        <A href="vi/live" >(All months)</A><br>
    <!-- NQ-PRO -->
        <A href="nq/live/current/index.html" >NQ Live</A>&nbsp
        <A href="nq/live/" >(All months)</A><br>
  </body>
</html>

</body>タグの上に3行のスタンザが自動的に追加されるように、自動化用のスクリプトを作成したいと思います。たとえば、</body>タグの上に次の行を追加します。sed / awkを使用してそれを行うことができると思いますが、方法がわかりませんか?

<!-- EX -->
        <A href="ex/live/current/index.html" >EX Live</A>&nbsp
        <A href="ex/live/" >(All months)</A><br>
4

3 に答える 3

1
sed '/\<\/body\>/i\
    <!-- EX -->\
        <A href="ex/live/current/index.html" >EX Live</A>&nbsp\
        <A href="ex/live/" >(All months)</A><br>' index.html

このiコマンドは、パターンに一致する行の前にデータを挿入します。バックスラッシュで終わる連続する行が追加されます。挿入された行の先頭の空白について心配する必要があるかもしれません。

于 2012-10-11T15:35:09.527 に答える
1

sed次の簡単なコマンド(GNU sed)を試してください

sed 's@</body>@\t<!-- EX -->\n\t<A href="ex/live/current/index.html" >EX Live</A>&nbsp;\n\t<A href="ex/live/" >(All months)</A><br>\n</body>@'

区切り文字として使用する必要はありません/。代わりに必要なものにすることができます。ここにセパレータがあります@

ポータブルソリューションSolaris 11( 、、FreeBSD 8.0で テスト済みArchlinux

sed 's@</body>@  <!-- EX -->\
        <A href="ex/live/current/index.html" >EX Live</A>&nbsp;\
        <A href="ex/live/" >(All months)</A><br>\
</body>@' file.html
于 2012-10-11T15:36:38.097 に答える
1

3行を変数aに保存します

それから:

awk -v a=$a '/<\/body>/{t=$0;$0=a"\n"t;}1' index.html
于 2012-10-11T15:38:41.563 に答える