我有一大堆带有一些html代码的文本文件。 EG:
Some random text....
..
...
....
<tag1>some more random text</tag1>
....
...
..
我需要运行一个脚本来浏览每个文本文件,然后将标记之间的每一行移动到同一文件夹中的新文本文件中,然后将其从原始文件中删除。
因此,最终结果将是一个没有<tag1>
的文件和另一个只有<tag1>
的文件。
我希望自己足够清楚。这有可能吗?
答案 0 :(得分:2)
IF (这是一个大的,粗体的,斜体的,大写的 IF )你可以保证每个<tag1>...</tag>
标记出现在一行中,同一行没有其他内容,并且没有标记属性可以使事情复杂化,那么答案很简单。
编辑 - 修复了一些错误,现在实际上有效: - )
@echo off
for %%F in (*.txt) do (
echo processing %%F
findstr /rc:"^ *<tag1>.*</tag1> *$" "%%F" >"%%~nF.tag1%%~xF"
findstr /rvc:"^ *<tag1>.*</tag1> *$" "%%F" >"%%~nF.new%%~xF"
>nul move /y "%%~nF.new%%~xF" "%%F"
)
可以扩展解决方案以轻松处理标记属性。
但我严重怀疑你的问题真的那么简单。有效的HTML内容可以包含多行标记,并且一行上可以有许多标记。
Windows本地批处理通常在文本处理方面非常糟糕,对HTML或XML来说更糟糕。我强烈建议使用第三方工具,例如适用于Windows的gnu sed,它具有强大的文本处理功能。或者更好的是,获得专门用于处理HTML的工具。