我有一个包含各种文本行(包括空行)的大型(20MB)文本(输入)文件。我想要一个可以在输入文件中找到特定文本的批处理文件,抓住搜索项所在的字符串,将该字符串写入另一个文本(输出)文件并将该字符串附加空格,逗号和后面的行在输出文件的输入文件中。批处理文件搜索文本并将其写入文本文件
输入文件DATA:
NORTHING EASTING O-HEIGHT CODE FFF STATION STD DEV MAPPROJ
NEO 000 020720618 4829559.470,12082011c.lst
0.015 0.015 0.015
NEO 000 020740188 4835430.827,12082011c.lst0.009 0.009 0.009
NEO 000 020750232 4841535.651,12082011c.lst0.004 0.004 0.004
PLH 000 020720615 43Ñ36 15.44568 79 w^32 38.2275467.892米0,12082011c.lst0.014 0.014 0.014,12082011c.lst
搜索词: “NEO”
OUTPUT:
NEO 000 020720618 4829559.470 ,12082011c.lst,0.015 0.015 0.015
NEO 000 020740188 4835430.827,12082011c.lst,0.009 0.009 0.009
NEO 000 020750232 4841535.651,12082011c.lst,0.004 0.004 0.004
我使用FINDSTR尝试命令,它会写行的第一部分(NEO 000 020720618 4829559.470,12082011c.lst),但我不知道如何抓住下一行并将其附加到字符串。 (字符串比我在这个例子中显示的要长,所以如果变量的字符数限制,请让我知道)。 谢谢, Gabe。
批处理不是文本处理的好选择。它可以完成,但它会变得复杂,可能慢得令人无法接受。如果您想使用本地Windows脚本工具,那么使用PowerShell,VBScript或JScript会更好。如果你被允许使用第三方工具,那么像Windows sed这样的工具将是完美的。 (Gnu有一个可用于Windows的sed的免费端口) – dbenham
此外,批处理只能处理长达8191字节的行。 (实际上少一点,但确切的数值取决于代码) – dbenham
非常感谢您的反馈。我确实感觉到我正步入复杂的领域。我正在尝试批处理路由,因为它很容易获得,但是我可以看到它具有局限性。 – Gabe