![在 Windows 7 中批量替换 xml 中的特定行号和第二个 xml 文件中的特定文本(行)](https://linux22.com/image/1338215/%E5%9C%A8%20Windows%207%20%E4%B8%AD%E6%89%B9%E9%87%8F%E6%9B%BF%E6%8D%A2%20xml%20%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E8%A1%8C%E5%8F%B7%E5%92%8C%E7%AC%AC%E4%BA%8C%E4%B8%AA%20xml%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E6%96%87%E6%9C%AC%EF%BC%88%E8%A1%8C%EF%BC%89.png)
首先,我既不是程序员也不是 Unix 专家,我在 Win7 上使用 notepad++ v6.18,所以我请求您帮我“简化一下” :)
我注意到,notepad++ 文件中每一行的左侧都有“灰色”数字,表示相应的行号,所以我认为“查找和替换”功能应该是直接的(即用文件 2 中的第 2 行替换文件 1 中的第 17 行)那不是很好吗!!!好吧,我错了,我似乎找不到办法来实现我想要做的事情……
我有 2 个 txt(或 xml 文件)f1 和 f2,我想要做的就是用 f2 中的给定行替换 f1 中的某些行...
这是一个例子...
文件 1(有几百行)
(item)(title)ABC(/title)(link)a_bunch_of_code(/link)(/item)
(item)(title)XYZ(/title)(link)a_different_code(/link)(/item)
etc...
文件 2(每行都有不同的代码)
hkskskdnnkk
absvdhvskkcncl
ETC...
我想要做的是...用文件 2 的第 2 行替换文件 1 中的第 1 行,然后用文件 2 中的第 1 行替换文件 1 中的第 2 行,等等...所以理想情况下,我正在考虑一些命令或脚本,它说...在文件 1 中找到第 1 行并将其替换为文件 2 中的第 2 行,然后在文件 1 中找到第 2 行并将其替换为文件 2 中的第 1 行,等等...
也许这必须在 Notepad++ 之外使用第三方工具或其他东西来完成...请提供建议,并提前谢谢您! -Paul
答案1
根据替换的范围,您有两种方法:
安装 Notepad++ 的插件管理器和比较插件,它非常适合比较两个文件的内容。如果您只想用其他文本替换某些文本(一个或多个单词),您可以使用 Notepad++ 中的搜索和替换手动完成。如果您有少量此类文本或要替换的文本很短,这是一个合适的解决方案。
如果此类替换的数量很多,并且您需要经常进行此类替换,那么您需要 Unix diff 和 patch 之类的工具,Windows 上有很多此类免费工具。使用方法很简单 - diff 工具的输出是一个补丁文件,您可以(使用补丁工具)将其应用到第二个文件以使两个文件相同。更简单的方法是复制文件,但如果您不希望整个文件相同,而只希望某些行相同,请编辑补丁文件(它是纯文本文件)并删除您不需要的内容。