[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理如何提取txt文本中指定字符串后面的3个字符?

本帖最后由 pcl_test 于 2016-11-18 15:39 编辑

循环提取1.txt文档中指定字符的后3个字节;假如1.txt上面有:01.02.05.07.06.03.12.11.05.07.06.08.
现在想要查找指定字符为05.07.06.需要结果
输出至2.txt为;
03.08.
1.txt上面有1000多个两位数字,所有的数据都是变量
请高手赐教!我是菜鸟!!
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

03.08.是从哪里来的?

TOP

本帖最后由 CrLf 于 2011-11-19 19:04 编辑

原先代码有误,已修改:
  1. @echo off&setlocal enabledelayedexpansion
  2. set key=05.07.06.
  3. (for /f "delims=" %%a in (1.txt) do (
  4.    set var=
  5.    set "str=%%a%key%"
  6.    for /l %%b in (1 1 100) do (
  7.       if defined str set str=!str:*%key%=!
  8.       for /f "delims=." %%c in ("!str!") do set var=!var!%%c.
  9.    )
  10.    echo;!var!
  11. ))>2.txt
  12. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. set key=05.07.06.
  3. (for /f "delims=" %%a in (1.txt) do (
  4.    set var=
  5.    set str=%%a
  6.    for %%b in (@!str:%key%^=^ !) do (
  7.       for /f "eol=@ delims=." %%c in ("%%b") do set var=!var!%%c.
  8.    )
  9.    echo;!var!
  10. ))>2.txt
  11. pause
复制代码
2

评分人数

    • Hello123World: 第二个代码实在是高技术 + 1
    • crx25: 救急,技术性强,全面考虑陈述盲点!!技术 + 1

TOP

档中指定字符的后3个字节;假如1.txt上面有:01.02.05.07.06.03.12.11.05.07.06.08.
现在想要查找指定字符为05.07.06.
03.是文本中指定字符串05.07.06.出现的第一次后面的;(05.07.06.03.)
08.是文本中指定字符串05.07.06.出现的第二次后面的;(05.07.06.08.)

TOP

  1. grep -o "05\.07\.06\..." a.txt | gawk -F. "{printf $NF\".\"}" >b.txt
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 3# CrLf


    谢谢你的帮助,不过,两段的结果都是空白,没有输出!!

TOP

回复 5# awk


    谢谢你,不过我不明白,也没结果!!

TOP

回复 7# crx25


你没有grep和gawk吧?

TOP

回复  crx25


你没有grep和gawk吧?
awk 发表于 2011-11-19 18:58



    这个我不懂,还有,我现在要的不是独立运行的,是要加入到批处理当中的!谢谢

TOP

回复 9# crx25


    原先代码有误,已修改

TOP

本帖最后由 crx25 于 2011-11-19 21:13 编辑

回复 10# CrLf


    多谢帮助,不胜感激!!效果一级棒!!

以前用的一段命令运行费时至少半小时,而且每次还要手工整理数据库文件,现在一下解决了,真的很感谢

TOP

返回列表