标题: [其他] [已解决]批处理如何提取txt文本中指定字符串后面的3个字符? [打印本页]
作者: crx25 时间: 2011-11-19 17:32 标题: [已解决]批处理如何提取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多个两位数字,所有的数据都是变量
请高手赐教!我是菜鸟!!
作者: awk 时间: 2011-11-19 17:58
03.08.是从哪里来的?
作者: CrLf 时间: 2011-11-19 18:05
本帖最后由 CrLf 于 2011-11-19 19:04 编辑
原先代码有误,已修改:- @echo off&setlocal enabledelayedexpansion
- set key=05.07.06.
- (for /f "delims=" %%a in (1.txt) do (
- set var=
- set "str=%%a%key%"
- for /l %%b in (1 1 100) do (
- if defined str set str=!str:*%key%=!
- for /f "delims=." %%c in ("!str!") do set var=!var!%%c.
- )
- echo;!var!
- ))>2.txt
- pause
复制代码
- @echo off&setlocal enabledelayedexpansion
- set key=05.07.06.
- (for /f "delims=" %%a in (1.txt) do (
- set var=
- set str=%%a
- for %%b in (@!str:%key%^=^ !) do (
- for /f "eol=@ delims=." %%c in ("%%b") do set var=!var!%%c.
- )
- echo;!var!
- ))>2.txt
- pause
复制代码
作者: crx25 时间: 2011-11-19 18:09
档中指定字符的后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.)
作者: awk 时间: 2011-11-19 18:16
- grep -o "05\.07\.06\..." a.txt | gawk -F. "{printf $NF\".\"}" >b.txt
复制代码
作者: crx25 时间: 2011-11-19 18:46
回复 3# CrLf
谢谢你的帮助,不过,两段的结果都是空白,没有输出!!
作者: crx25 时间: 2011-11-19 18:51
回复 5# awk
谢谢你,不过我不明白,也没结果!!
作者: awk 时间: 2011-11-19 18:58
回复 7# crx25
你没有grep和gawk吧?
作者: crx25 时间: 2011-11-19 19:02
回复 crx25
你没有grep和gawk吧?
awk 发表于 2011-11-19 18:58
这个我不懂,还有,我现在要的不是独立运行的,是要加入到批处理当中的!谢谢
作者: CrLf 时间: 2011-11-19 19:05
回复 9# crx25
原先代码有误,已修改
作者: crx25 时间: 2011-11-19 19:27
本帖最后由 crx25 于 2011-11-19 21:13 编辑
回复 10# CrLf
多谢帮助,不胜感激!!效果一级棒!!
以前用的一段命令运行费时至少半小时,而且每次还要手工整理数据库文件,现在一下解决了,真的很感谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |