Board logo

标题: [文本处理] bat脚本怎样提取文本以逗号分割的前16个字符? [打印本页]

作者: idc878787    时间: 2022-4-25 22:02     标题: bat脚本怎样提取文本以逗号分割的前16个字符?

bat提取 a,b文本行 格式  以 逗号, 分割 。  a(前16个字符)=b(前16个字符) 的文本行???怎么写?


a(前16个字符)    =     b(前16个字符) 的文本行。   


文本1.txt
www.diffordsguide...,www.fordsky.com
www.nvidia.com,www.fordsky.com
gitee.com,www.learn2link.com
www.walmart.com,www.learn2link.com
www.swkong.com,www.junhengjs.com
csol.tiancity.com...,www.junhengjs.com
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com


提取这3个
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com
作者: went    时间: 2022-4-25 22:54

  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. REM 输入输出文件
  4. set "in_txt=1.txt"
  5. set "out_txt=2.txt"
  6. REM 提取的域名
  7. set "host_list=cnphotoshop shabasoku shoku"
  8. (
  9. for /f "tokens=1* delims=," %%i in ('findstr "%host_list%" "%in_txt%"') do (
  10. set "a=%%i"
  11. set "b=%%j"
  12. echo !a:~0,16! = !b:~0,16!
  13. )
  14. )>"%out_txt%"
  15. pause&exit
复制代码

作者: idc878787    时间: 2022-4-25 23:16

回复 2# went


数据很多。怎么只提取了3个,提取出来的数如下。跟我说的不大一样?

www.cnphotoshop. = www.cnphotoshop.
www.shabasoku.co = www.shabasoku.co
www.shoku.com = www.shoku.com
作者: went    时间: 2022-4-25 23:24

回复 3# idc878787


    代码是提取包含第七行列出的域名的信息,逗号两边各取前16个字符
不知道你的实际需求是什么
作者: idc878787    时间: 2022-4-25 23:32

回复 4# went


    文本1.txt    我发的内容还有很多。只发了部分内容

我要提取的是。  a(前16字符) 等于b(前16字符)    的  文本行。 ???
作者: went    时间: 2022-4-25 23:39

第七行改成下面,这个结果吗
  1. set "host_list=.*"
复制代码

作者: idc878787    时间: 2022-4-25 23:47

回复 6# went

不对。我要的是

  例如  文本1.txt
www.diffordsguide...,www.fordsky.com
www.nvidia.com,www.fordsky.com
gitee.com,www.learn2link.com
www.walmart.com,www.learn2link.com
www.swkong.com,www.junhengjs.com
csol.tiancity.com...,www.junhengjs.com
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com


生成文本2.txt
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com
作者: went    时间: 2022-4-25 23:55

回复 7# idc878787
  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. REM 输入输出文件
  4. set "in_txt=1.txt"
  5. set "out_txt=2.txt"
  6. (
  7. for /f "usebackq tokens=1* delims=," %%i in ("%in_txt%") do (
  8. set "a=%%i"
  9. set "b=%%j"
  10. if "!a:~0,16!"=="!b:~0,16!" echo %%i,%%j
  11. )
  12. )>"%out_txt%"
  13. pause&exit
复制代码

作者: idc878787    时间: 2022-4-25 23:59

回复 8# went


   万分感谢。 要说就是这个




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