2016-11-15 52 views
0

我有这样的文件,我必须从它滤除第一和第二列,每个所述图案“泰坦”或其他人在同一行第一列和第二列(该模式可能出现在除前两个之外的任何其他列中)。滤出从每图案文件中的第一和第二列,在CMD /批

我必须这样做在Windows批处理:-(

这里是一个例子文件:

d:\sections.txt: 

# section1 
127.0.0.1 80 Titan 
ip1 443 Titan 

# software servers 2 
ip2 80 software 
servername 443 Composer software 

C:\Users\user>findstr Titan d:\sections.txt 
127.0.0.1 80 Titan 
ip1 80 Titan 

我想到一起的

for /F "tokens=1 delims= " %%i in $(findstr Titan d:\sections.txt) do @echo %i 

线的东西但不似乎为了讨好的Microsoft Windows 然后我尝试:

findstr Titan d:\sections.txt | for /F "tokens=1 delims= " %%i in (d:/sections.txt) do @echo %%i 

,但我不知道该怎么办For循环,而不该文件,并与FINDSTR输出。

这个命令应该是一个更大的脚本,所以我想从outputing到临时文件,写入长脚本一个愚蠢的小东西不断的一部分,等

任何帮助,将不胜感激,与其他工具如果需要。我想念你的bash行..

+1

不希望过于粗鲁,基于你已经在你的问题提供了什么,你的批处理脚本命令的结构一般掌握不是很好。出于这个原因,如果我要查看整个“更大”的批处理脚本,并且还想要输出结果的例子,我会更有信心。 – Compo

回答

2

三少错误。
a)要处理命令的输出,请将命令用单引号引起来。
b)使用%%i用于批处理文件使用%i用于命令行。不要混合两种语法。
C)你说:“过滤掉第一和第二列”,但只使用第一个令牌。

for /F "tokens=1,2 delims= " %%i in ('findstr Titan d:\sections.txt') do @echo %%i %%j 

应该更接近你想要的。

+0

干杯!我正在使用CMD进行测试,所以使用%i,但该命令在Jenkins管道蝙蝠中使用单引号运行良好。这是一些小事...... –

相关问题