2

447 ページの html に 3 行追加する必要があります。具体的には、次の行を追加する必要があります。

<input name="prev" type="button" value="prev" onClick="handlePrev()" id="prevButton">
<input name="next" type="button" value="next" onClick="handleNext()" id="nextButton">
<script src="nav.js"></script>

後に

</table>

鬼ごっこ。

私はこれを perl で行うことを好みますが、実際にはどのような方法でも問題ありません。それが簡単であれば、Windowsでこれを行うことにもオープンです。

私が試したスクリプトの1つ:

#!/usr/bin/perl -i.bak -p
my $prevButton = '<input name="prev" type="button" value="prev" onClick="handlePrev()" id="prevButton">\n';
my $nextButton = '<input name="next" type="button" value="next" onClick="handleNext()" id="nextButton">\n';
my $jsInclude = '<script src="nav.js"></script>\n';
print "TEST" if /\<\/table\>/;

それはページに触れますが、私が期待していたように、テーブルタグを TEST に置き換えません。

参考までに: 私は完全な perl 初心者なので、ここから完全に外れている可能性があります。

4

4 に答える 4

1

これはあなたのために働くかもしれません:

cat <<\! >append.txt
> <input name="prev" type="button" value="prev" onClick="handlePrev()" id="prevButton">
> <input name="next" type="button" value="next" onClick="handleNext()" id="nextButton">
> <script src="nav.js"></script>
> !
cat <<\! >file.txt
> a
> b
> c
> <table>
> x
> y
> z
> </table>
> d
> e
> f
> !
sed '/<\/table>/r append.txt' file.txt
a
b
c
<table>
x 
y
z
</table>
<input name="prev" type="button" value="prev" onClick="handlePrev()" id="prevButton">
<input name="next" type="button" value="next" onClick="handleNext()" id="nextButton">
<script src="nav.js"></script>
d
e
f

すべてがうまく見えるとき:

sed -i.bak '/<\/table>/r append.txt' <list of files>
于 2012-05-03T14:51:50.030 に答える
1

あなたが望むものは:

#!/usr/bin/perl -i.bak -p
my $prevButton = ...
my $nextButton = ...
my $jsInclude = ...
$_.="$prevButton\n$nextButton\n$jsInclude" if /\<\/table\>/;

スクリプトを次のように実行します。

perl prg.pl /path/*.html
于 2012-05-03T14:29:04.723 に答える
1

これは動作する Perl スクリプトです。ディレクトリ内の特定のdoctypeを持つすべてのファイルに3行を追加します。ディレクトリへのパスと doctype を入力して、試してみてください。

#!/usr/bin/perl

use strict;
use warnings;
use File::Find;

my $startdir = 'enter the path to your files here!';
my $find = '</table>';
my $replace = '</table><input name="prev" type="button" value="prev" onClick="handlePrev()" id="prevButton">
<input name="next" type="button" value="next" onClick="handleNext()" id="nextButton">
<script src="nav.js"></script>';

my $doctype = 'enter your doctype here!';


find(
sub{
  return unless (/\.$doctype$/i);
  local @ARGV = $_;
  local $^I = '.bac';

  while( <> ){
    if( s/$find/$replace/ig ) {
      print;
    }
    else {
      print;
    }
  }
}, $startdir);

print "done";
于 2012-05-03T15:16:02.543 に答える
1
sed -i -e '/<table>/aYourStringToAppendHere' file
于 2012-05-03T14:33:43.243 に答える