次の Perl ワンライナーを bash スクリプトで使用して、pre タグ間の複数行のテキストをキャプチャし、別の開始文字列と終了文字列でラップされたタグ コンテンツの 2 回目の繰り返しを追加しています。
new_start_string="NEWSTART"
new_end_string="NEWEND"
perl -i -pe "BEGIN{undef $/;} s/<pre>(.*?)<\/pre>/<pre>\$1<\/pre>${new_start_string}\$1${new_end_string}/smg" /path/to/file
指定されたタスクに対して完全に機能します。HTML を正規表現で解析していることは承知していますが、これは理想的ではありませんが、このテキスト ファイルの書式設定は既知の要素であり、非常に単純で、ローカル制御下にあり、ローカル仕様によって行われるため、解析がやり過ぎで、解析を介してこれを行わないことを選択しました。
同じワンライナーを使用して、キャプチャ値 $1 変数の 2 回目の反復を URL エンコードするにはどうすればよいですか? それが不可能な場合、比較的単純で読みやすいこの結果を得るための別の方法はありますか?