我有一个包含数百行的文本文件,例如
test.bin:8948549854958
它们的样式都与上面的文件(xxxxxxx.xxx:xxxxxxxxxxxxxx
)
有什么方法可以修剪所有线条,例如获取该行的:xxxxxxxxxxxxxxx
,以便离开xxxxxxx.xxx
?
答案 0 :(得分:7)
Trim.bat:
@FOR /F "tokens=1 delims=:" %%G IN (%1) DO @echo %%G
用法:trim source.txt > destination.txt
请参阅here。
答案 1 :(得分:3)
嗯,因为很明显除了PowerShell之外,Windows上没有“标准”工具可以实现这一点,你可以自己动手:
#include <stdio.h>
#include <string.h>
main(int argc, char *argv[])
{
char s[2048], *pos=0;
while (fgets(s, 2048, stdin))
{
if (pos = strpbrk(s, ":\r\n"))
*pos='\0';
puts(s);
}
return 0;
}
请注意,这具有规范化行尾(CRLF)的“副作用”,并且在输入中不允许行&gt; 2048个字符。但是,它在所有平台上都能很好地工作和我只是用winegcc(winelib),mingw(在linux上)和MSVC编译器编译它。如果你想要二进制文件,请告诉我
哦,强制使用演示:
C:\> strip.exe < input.txt > output.txt
答案 2 :(得分:0)
如果您可以使用脚本分发exe,则可以使用像egrep这样的'grep'的Windows编译。如果你想用脚本编写,你没有很多选项可以在Windows上查找替换。根据您的情况,您可以通过'findstr'cmd来实现。
答案 3 :(得分:0)
这样的program already exists,虽然它确实是错误的。这是我能找到的唯一具有这种明显功能的程序。我希望Notepad ++或其他一些文本编辑软件能够实现这一功能。
答案 4 :(得分:0)
对于记事本++,请进行查找和替换。务必打开“替换”选项卡左下角的“正则表达式”,并将其用作查找条件。 (** \:。*) 我会用“)”替换它,除非你希望它也被删除。如果是这样,你可能想删除“(”表示对称,但一定要关闭“正则表达式”单选按钮,否则后续搜索将无法按预期执行。
答案 5 :(得分:0)
以非编程方式执行此操作的最简单方法是使用文本编辑器(如TextPad或Notepad ++)并执行块选择(必须从菜单中切换模式)并选择矩形文本区域(最后十二列或其他任何内容) )并简单地删除它们。当您处于块选择模式时,选择将不会回绕并抓住行的开头。
答案 6 :(得分:0)
for / F&#34; tokens = 1,2 delims =:&#34; %i in(filename)do @echo%i