Board logo

标题: 提取txt中单词 请教达人啊 [打印本页]

作者: fanvy     时间: 2007-12-23 15:52    标题: 提取txt中单词 请教达人啊

现有txt 格式如下
xdf  k  aa
kk   a sfsf
ccc uud
ksds c  sef
...
..
我想提取所有前面的单词到一个txt里 也就是
xdf
kk
ccc
ksds
.
最后的单词到另外一个txt里,也就是
aa
sfsf
uud
sef
.
该怎么做
请教达人啊

[ Last edited by fanvy on 2007-12-23 at 04:41 PM ]
作者: HAT     时间: 2007-12-23 16:19

@echo off
set SrcFile=C:\a.txt
set DstFirst=C:\b.txt
set DstLast=C:\c.txt

type nul>"%DstFirst%"
type nul>"%DstLast%"
for /f "tokens=1-3 delims= " %%a in ('findstr .* "%SrcFile%"') do (
  echo %%a>>"%DstFirst%"
  echo %%c>>"%DstLast%"
)

作者: fanvy     时间: 2007-12-23 16:36
楼上的朋友 我更新了 你的方法还不能完美解决  请重新看一下 谢了;););)

[ Last edited by fanvy on 2007-12-23 at 04:43 PM ]
作者: zerocq     时间: 2007-12-23 17:21
有些行是两个单词??有些是三个??

检测一下第三个变量是否已定义,然后再决定写入第二还是第三个

如果第三个不存在,就写入第二个吧
作者: terse     时间: 2007-12-23 17:34
if 存在第三个写入  不存在写入第二个
我也这么想
作者: lxmxn     时间: 2007-12-23 19:34

gawk "{print $1>\"first.txt\";print $NF>\"last.txt\"}" a.txt

@echo off&setlocal
for /f "delims=" %%a in (a.txt) do (
    for %%b in (%%a) do (
        if not defined batch (echo\%%b>>first.txt & set batch=cn-dos) else (set word=%%b)
    )
    set batch=
    if defined word call echo\%%word%%>>last.txt
)

@echo off& setlocal enabledelayedexpansion
for /f "tokens=1*" %%a in (a.txt) do (
    echo\%%a>>first.txt
    for %%c in (%%b) do set last=%%c
    echo\!last!>>last.txt
)

作者: fanvy     时间: 2007-12-23 20:28
楼上的大牛 呵呵 谢了