Board logo

标题: [文本处理] [ok]根据一个文本中列出的字符串/关键字查找出另一个文本里含有该字符串/关键字的行 [打印本页]

作者: super1129    时间: 2011-11-15 12:55     标题: [ok]根据一个文本中列出的字符串/关键字查找出另一个文本里含有该字符串/关键字的行

本帖最后由 pcl_test 于 2016-9-9 11:43 编辑

请问大家:
已知1.txt中含有以下内容:
张三:S001
李四:S002
王五:S003
刘六:S004
………………

我想在上述文本中查找find.txt中的内容,查得到就给出上面的格式,查不到就空空着。不去重复,不改变顺序。谢谢大家。
如find.txt
张三
李三
王五

结果希望是这样:
张三:S001
李三
王五:S003
作者: CrLf    时间: 2011-11-15 12:57

  1. findstr /lbg:find.txt 1.txt
复制代码

作者: super1129    时间: 2011-11-15 13:02

回复 2# CrLf


    谢谢   好像结果中没有出现找到的结果。
作者: super1129    时间: 2011-11-15 13:04

本帖最后由 super1129 于 2011-11-15 13:09 编辑
CrLf 发表于 2011-11-15 12:57



    dos 框运行了,但是结果中没看到找到的内容


我之前用的这个,但是只能找到存在的,不存在的就没显示了,不符合我的要求
  1. @echo off&setlocal enabledelayedexpansion
  2. echfor /f %%i in (find.txt) do (
  3. for /f "delims=: tokens=1,2" %%a in ('findstr /i /c:"%%i%" 1.txt') do (
  4. echo %%a:%%b>>result.txt
  5. )
  6. )
复制代码

作者: super1129    时间: 2011-11-15 13:11

CrLf 发表于 2011-11-15 12:57



    谢谢,你这个好像也只能找到存在的,不存在也找不到。我试了下这个
  1. findstr /lbg:find.txt 1.txt>>result.txt
复制代码

作者: CrLf    时间: 2011-11-15 13:13

本帖最后由 CrLf 于 2011-11-15 13:18 编辑

回复 4# super1129
  1. @echo off
  2. for /f "tokens=1* delims=:" %%a in (1.txt) do set @%%a=%%b
  3. (for /f %%a in (find.txt) do (
  4.    if defined @%%a (echo %%a:!@%%a!) else echo %%a
  5. ))>result.txt
复制代码

作者: super1129    时间: 2011-11-15 13:26

回复  super1129
CrLf 发表于 2011-11-15 13:13



    非常感谢    ok了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2