Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该在cURL-googleapi上使用什么sed语法_Curl_Sed - Fatal编程技术网

我应该在cURL-googleapi上使用什么sed语法

我应该在cURL-googleapi上使用什么sed语法,curl,sed,Curl,Sed,我想得到以下数据:AAPL 在以下cURL上使用sed:cURL-s”http://www.google.com/ig/api?stock=AAPL“ GoogleAPI给了我一个XML答案,包含APPL的标签是,即 是否可以使用一个sed来提供来自2个XML标记的数据 我正在运行MAC OS X 10.8.2,我对Unix bash/shell命令非常陌生。最好使用shell命令(由libxml安装)和表达式。而不是sed。它是一个perl一行代码,分成几行,并使用XML解析器XML::Twi

我想得到以下数据:AAPL

在以下cURL上使用sed:
cURL-s”http://www.google.com/ig/api?stock=AAPL“

GoogleAPI给了我一个XML答案,包含APPL的标签是
,即

是否可以使用一个sed来提供来自2个XML标记的数据


我正在运行MAC OS X 10.8.2,我对Unix bash/shell命令非常陌生。

最好使用shell命令(由libxml安装)和表达式。

而不是
sed
。它是一个
perl
一行代码,分成几行,并使用XML解析器
XML::Twig

perl-5.14.2 -MXML::Twig -e '
    BEGIN { 
        sub process { printf qq|%s\n|, $_[1]->print } 
    } 
    XML::Twig->new( 
        twig_handlers => { 
            symbol => \&process, 
            last => \&process 
        } 
    )->parse( qx{curl -s "http://www.google.com/ig/api?stock=AAPL"} )
'
它产生:

<symbol data="AAPL"/>
<last data="439.88"/>

这有点冗长——您可以使用GNU sed来减少它——但这应该可以做到:

curl -s "http://www.google.com/ig/api?stock=AAPL" |
  grep -Eo '<(symbol|last) [^>]*>' |
  sed -e 's/.*data="//' -e 's/".*//'

哪两个标签?期望的输出和样本输入是什么?不管怎么说,答案是:是的,但是
sed
不是最好的工具。XPath查询将以更简单、更可靠的方式获得结果。查看命令行工具的
xmlstarlet
。现在让我们使用sed。谢谢,稍后我们将查看它们。但现在我想使用sed。下面是cURL的som示例输出。我想使用sed来显示这两个标签中的数据;此注释太长,如果与此处相关,输出应该是此问题或其他问题的一部分。但应该可以使用sed。我就是搞不懂语法
curl -s "http://www.google.com/ig/api?stock=AAPL" |
  sed -e 's/.*<symbol data="\([^>]*\)"\/>.*<last data="\([^>]*\)"\/>.*/\1 \2/'