Board logo

标题: [求助]如何在FOR语句提取数据时跳过空值? [打印本页]

作者: flybird2020     时间: 2007-9-13 17:27    标题: [求助]如何在FOR语句提取数据时跳过空值?


for /f "tokens=1,2,3,4,5,6 delims=        " %%a in (测试.txt) do (
echo ^(%%a,%%b^)>>test.txt
echo ^(%%a,%%c^)>>test.txt
echo ^(%%a,%%d^)>>test.txt
echo ^(%%a,%%e^)>>test.txt
echo ^(%%a,%%f^)>>test.txt
)
如果在测试.txt中,每一行的数据可能有空的话怎么排除呢?
比如:
一        11        111        1111
二        22        222        2222        22222        222222
三        33        333
四        44
运行后得到结果为:
(一,11)
(一,111)
(一,1111)
(一,)
(一,)
(二,22)
(二,222)
(二,2222)
(二,22222)
(二,222222)
(三,33)
(三,333)
(三,)
(三,)
(三,)
(四,44)
(四,)
(四,)
(四,)
(四,)
我希望这里面为空的
如:
(三,)
(四,)
就直接不提取
如果不好实现的话,就把为空的替换没不存在
要怎么写呢?
谢谢大大们指点
作者: ThinKing     时间: 2007-9-13 19:47
前面加上IF来判断再执行之后的命令。
作者: ThinKing     时间: 2007-9-14 10:34
用Gawk也可以实现:
gawk "{for(i=2;i<=NF;i++)printf(\"(%s,%s)\n\",$1,$i)}" 测试.txt>2.txt
gawk.exe 的下载链接在论坛搜索一下就可以找到了。