Linux版のsedコマンドがWindows環境で利用できるようになっていることが前提。
windows sub system for linux や、Cygwin, mingw-w64 などを設定して、GNU software の sed を用意する。
この sed コマンドは、文章の終端文字を、改行(0x0a)からファイルの終端(0x00)に変更ができるので、
タグの途中に改行コードが含まれても正しく処理できる。
問題点は、sed コマンドが最大一致を行うことで、複数のタグブロックがあると途中の全てが削除・修正されて
期待する結果が得られないことで、"特定文字が含まれない間"という正規表現と組み合わせて使うことになる。
簡単に言えば、 GNU sed で -z オプション付きでかつ、特定文字を「含まない」という否定の正規表現を併用して
修正作業を行うと言う事です。
Usage: sed
[OPTION]... {script-only-if-no-other-script} [input-file]...
-n, --quiet, --silent
suppress automatic printing of pattern space
--debug
annotate program execution
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script-file to the commands to be executed
--follow-symlinks
follow symlinks when processing in place
-i[SUFFIX],
--in-place[=SUFFIX]
edit
files in place (makes backup if SUFFIX supplied)
-b, --binary
open files in binary mode (CR+LFs are not processed specially)
-l N, --line-length=N
specify the desired line-wrap length for the `l' command
--posix
disable all GNU extensions.
-E, -r, --regexp-extended
use extended regular expressions in the script
(for portability use POSIX -E).
-s, --separate
consider files as separate rather than as a single,
continuous long stream.
--sandbox
operate in sandbox mode (disable e/r/w commands).
-u, --unbuffered
load minimal amounts of data from the input files and flush
the output buffers more often
-z,
--null-data
separate lines by NUL characters
--help display this help and
exit
--version
output version information and exit
If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret.
All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.
GNU sed home page: <https://www.gnu.org/software/sed/>.
General help using GNU software:
<https://www.gnu.org/gethelp/>.