Board logo

标题: [文本处理] [已解决]批处理如何在一段文字中提取所需要的特征字? [打印本页]

作者: xptool    时间: 2011-2-8 23:43     标题: [已解决]批处理如何在一段文字中提取所需要的特征字?

本帖最后由 xptool 于 2011-10-12 19:51 编辑

1

=1a248eefe9079208adedfb0b8f391e59 target=总是blank><img src特征=../images/2.gif name='tmp2'

把每行中的数字 提取出来
结果

结果   12489079208083915922

2
如何提取每行左边8个字符

结果 =1a248ee

3
如何提取每行右边8个字符

结果     e='tmp2'


4
如何提取每行特征字 blank  左边8个字符 汉字算2个字符

结果  get=总是

5
如何提取每行特征字 blank  右边8个字符 汉字算2个字符

结果><img src

请朋友们帮帮忙
作者: CrLf    时间: 2011-2-9 02:24

1,提取数字:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3. set a=%%a&set b= %%a
  4. for /l %%b in (0 1 9) do set a=!a:%%b= !
  5. for %%b in (!a!) do set b=!b:%%b=!
  6. set b=!b: =!
  7. echo !b!
  8. )
  9. pause
复制代码
2,3,提取左右各8个字符
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3. set a=%%a
  4. echo 左:!a:~0,8!    右:!a:~-8!
  5. )
  6. pause
复制代码
4,5,此处除了if以外好像还没有更好的办法区分汉字与单字节字符,但是这样子仍然太笨了,期待更好的办法登场。另外,楼主没考虑过汉字被分成两半的可能行么?
作者: CUer    时间: 2011-2-9 14:30

  1. sed "s/[^0-9]//g" 1.txt
复制代码
  1. sed -r "s/^(.{8}).*/\1/" 1.txt
复制代码
  1. sed -r "s/.*(.{8})$/\1/" 1.txt
复制代码
  1. sed -r "s/.*(.{8})blank.*/\1/" 1.txt
复制代码
  1. sed -r "s/.*blank(.{8}).*/\1/" 1.txt
复制代码





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