Board logo

标题: [文本处理] 批处理如何找到存在于指定文件的字符串? [打印本页]

作者: csuwind    时间: 2011-12-29 01:10     标题: 批处理如何找到存在于指定文件的字符串?

各位大哥,小弟有一个紧急的问题,谢谢大家帮忙。
有一个字符串a="abc"  (全小写)
有一个文本b
xxx aBc ddd ttt  124
ddd abC 567=
eee Abc 888==

现在要求,首先,不区分大小写,搜索字符串a 首次在b中出现的字符串,然后将b中这个字符串以b文件中的本身的大小写输出.
比如经过搜索第一行含有 aBc=abc ,所以输出aBc  循环结束(只搜寻出现一次即可,并且按照原来文件的大小写输出).
作者: awk    时间: 2011-12-29 09:21

  1. gawk -v a="abc" "{for(i=1;i<=NF;i++)if(tolower($i)==a){print $i;exit}}" b.txt
复制代码

作者: 601997526    时间: 2011-12-29 10:34

  1. @echo off
  2. set a="abc"
  3. for /f "delims=" %%i in (b.txt) do (
  4. echo %%i|findstr /i %a% &&(pause&exit)
  5. )
  6. pause
复制代码

作者: awk    时间: 2011-12-29 10:42

回复 3# 601997526


楼主要求输出aBc,而不是aBc所在的一整行。
作者: csuwind    时间: 2011-12-29 16:03

回复 2# awk


    老大,你这个貌似也是输出一整行啊? 我只要输出相当的那个字符串的本身格式即可
作者: awk    时间: 2011-12-29 16:15

回复 5# csuwind


你听谁说的貌似?
作者: csuwind    时间: 2011-12-29 16:35

回复 6# awk


   老大,你那个gawk能不能发一个给我,我在伊朗,这里好多网站打不开不能下载,而且我不能在本论坛搜索.  我邮箱 [email]csu_wind@163.com[/email]
作者: csuwind    时间: 2011-12-29 17:09

回复 2# awk


  OK,老大,感谢。我已经找到了这个工具.经过测试成功. 我这里还有一个小问题,就是 比如 a=abc, b=123Abc88  如果按你的算法 在b中找a,这样就找不到了,我这里想把Abc找出来,因为每行的内容格式不固定,并不存在什么以空格为分隔之类的,就是在一行混混杂的内容中找与a符合的




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