我正在寻找一种自动化解决方案,它可以在一组文本文件中搜索指定的文本字符串是否在一行上(可能不完全匹配 - 只要指定的文本字符串包含在该行中),并将删除找到文本字符串的整行(或多行)并将其替换为我指定的文本字符串。我使用的是 Windows 7。
原因:我编辑了一个旧策略游戏的 AI 文件(横扫千军)。AI 文件基本上是文本文件,每种地图类型都有不同的 AI 文件。如果我想在所有 AI 文件中进行相同的特定编辑,我必须编辑大量文本文件。
答案1
记事本++,http://notepad-plus-plus.org/(也可作为便携式应用程序使用),将使用正则表达式对当前目录和所有子目录中的文件进行搜索和替换,在搜索菜单中转到替换,然后单击“在文件中查找”选项卡,选择“正则表达式”搜索模式类型“^。你的字符串。在搜索字段中输入“$”,在“替换为”字段中输入“your_new_string”。
最好先测试一下。
答案2
您可以sed
在 Windows 中使用。其中一个来源是操作系统. 典型的命令可能如下所示:
sed '/search pattern/s/^.*$/This is the new text/' file*.txt
其含义是“在每个包含文本“搜索模式”的文件(名为 file[something].txt)的每一行上,将整行替换为“这是新文本”。
可以使用正则表达式和其他命令执行更复杂的操作。