找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26044|回复: 8

[问题求助] sed 如何提取关键字后面的第一对引号中的内容

[复制链接]
发表于 2011-6-2 13:42:33 | 显示全部楼层 |阅读模式
本帖最后由 随风 于 2011-6-2 13:48 编辑

xxx"abcx"xabc"1"xx"xxx"abc"2"abc"3abc3"xx"x
上行中abc"引号 为关键字,要提取他后面第一对引号中的内容,其中xxx为未知数

需提取的结果为  1 2 3abc3
发表于 2011-6-2 19:38:32 | 显示全部楼层
菜鸟路过。
期待解答。。
发表于 2011-6-2 20:01:19 | 显示全部楼层
  1. sed  "s/\(abc"[0-9a-z]*"\)/\n\1\n/g" 1.txt | sed -n "/abc"[0-9a-z]*"/ s/.*"\(.*\)"/\1/p" | sed ":a;N;$!ba;s/\n/ /g"
复制代码
晚上到家再想一个简单的
 楼主| 发表于 2011-6-2 20:30:05 | 显示全部楼层
再补充一点 列子中的 数字,字母有可能是汉字,符号。
发表于 2011-6-2 20:35:39 | 显示全部楼层
  1. sed -n "s/abc\x22/\n/g; s/\x22[^\n]*//g; s/[^\n]*//; p"
复制代码
发表于 2011-6-2 21:23:01 | 显示全部楼层
本帖最后由 batman 于 2011-6-2 21:30 编辑

还是vbs正则方便:

  1. Dim vbstr, rgstr
  2. vbstr = "xxx""abcx""xabc""1""xx""xxx""abc""2""abc""3abc3""xx""x"
  3. Set regex = New RegExp
  4. regex.Global = True
  5. regex.IgnoreCase = True
  6. regex.Pattern = ".*?abc\x22(.*?)\x22"
  7. For Each match In regex.Execute(vbstr)
  8.   rgstr = rgstr & match.Submatches(0)
  9. next
  10. Set regex = Nothing
  11. MsgBox rgstr
复制代码
ps:这个正则可以想取哪段取哪段的,很方便。。。
 楼主| 发表于 2011-6-2 21:35:51 | 显示全部楼层
5# tmplinshi

strxxx"abcx"xabc"1"xFFF"A"xxFFFx"xxx"abc"2"xxFFF"B"xxabc"3abc3"xx"x"FFF"C"xxxFFF
太美丽了,很巧妙的方法,学习了.
增加难度
上面行 FFF" 为新的关键字
要求显示如下
1 A
2 B
3abc3 C
发表于 2011-6-2 21:48:21 | 显示全部楼层
还是vbs:

  1. Dim vbstr, rgstr
  2. vbstr = "strxxx""abcx""xabc""1""xFFF""A""xxFFFx""xxx""abc""2""xxFFF""B""xxabc""3abc3""xx""x""FFF""C""xxxFFF"
  3. Set regex = New RegExp
  4. regex.Global = True
  5. regex.IgnoreCase = True
  6. regex.Pattern = ".*?abc\x22(.*?)\x22.*?fff\x22(.*?)\x22"
  7. For Each match In regex.Execute(vbstr)
  8.   rgstr = rgstr & match.Submatches(0) & Chr(9) & match.Submatches(1) & vbCrLf
  9. next
  10. Set regex = Nothing
  11. MsgBox rgstr
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:31 , Processed in 0.010151 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表