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

[问题求助] 如何用sed提取每行第一对引号中的内容?

如何用sed提取每行第一对引号中的内容

"aaaaaaaaaaaaaaaaaaaaa"ddddddddddddddddddd"dddddddd"
"dkfdsfiadfafadfjadf"dfa>dfiadfdf"
dkfjiadfafja'f"difjdsifjadsfadsf"fidsjfdasfadsf"1111111"f
"dfijdifjdifjdifdsfidfij"
技术问题请到论坛发帖求助!

5# 随风


是正则表达式的贪婪性造成的,参考:
http://bbs.bathome.net/thread-12622-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

sed "s/^[^\"]*\"\([^\"]*\)\".*/\1/" 1.txt
上面是batcher的代码
我是这样理解
先把代码用空格隔开
/^  [^\"]  *  \"  \([^\"]*\)  \".*/ \1/
1、 ^号 代表行开头
2、 [^\"] 代表非引号
3、 * 代表 重复0或N次左边的非引号字符
4、 \" 到引号止
5、 \([^\"]*\) 这部分就应该是后面的 \1 了,也是非引号字符
6、 \".* 到引号止,后面.*代表任意字符

不理解的是为什么非要开头的1和2
我这样就不行 sed "s/.*\"\([^\"]*\)\".*/\1/" a.txt
.*\" 前面任意字符到引号止
\([^\"]*\) 和上面的一样
\".* 同上

望batcher能讲解下。。
技术问题请到论坛发帖求助!

TOP

  1. gawk -F\" "{print $2}" 1.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. sed "s/^[^\"]*\"\([^\"]*\)\".*/\1/" 1.txt
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

tmplinshi 的代码
  1. sed -n "s/[^\"]*\"//;s/\".*//p" tem.txt
复制代码
技术问题请到论坛发帖求助!

TOP

返回列表