我从网站上得到这个结果:
Value2:16 Value4:34
可以有多行或只有一行。该值始终用":"分隔。这些值应该在AppleScript中使用,如下所示:
将Value2设置为16 将value4设置为34 ...
这是我到目前为止所做的:
set someText to do shell script "curl http://asdress | textutil -stdin -stdout -format html -convert txt -encoding UTF-8"
set AppleScript's text item delimiters to {":"}
set delimitedList to every text item of someText
如何单独设置变量? 谢谢你的帮助!
答案 0 :(得分:0)
如果您使用curl
模拟echo
命令的输出,请执行以下操作:
echo -e "Value2: 16\n Value4: 34"
echo -e "Value2: 16 Value4: 34"
您可以使用grep
测试一些过滤。我会选择以下内容:
echo -e "Value2: 16\n Value4: 34" | grep -Ewo "\d+"
将使用Extended Regular Expressions
(-E
),它允许我使用\d+
查找一个或多个数字,而-w
表示我找到的必须有一个字边界两侧(因此我找不到Value2
或Value4
,而-o
表示只输出匹配的部分。
因此,要回答您的问题,我会将您的curl
更改为
curl .... | grep -Ewo "\d+"
你将得到输出
16
34
答案 1 :(得分:0)
你不是。使用map / hash / dictionary / associative列表/表结构来存储任意键值对,或者如果你拥有有限数量的已知键,则使用if theKey == "Value1" then \ set Value1 to theValue \ else if theKey == "Value2" then ... etc.
,并且由于某些罕见的原因,必须使用单独的变量。
令人沮丧的是,AppleScript没有包含键值数据类型 - 它只有数组(列表)和结构(记录) - 但您可以轻松地滚动自己的快速n-dirty关联列表例程以进行循环{theKey:"...",theValue:"..."}
个记录的列表(天真的性能应该高达几十个项目;较大的集合需要更高效的算法)。或者,如果您使用的是10.10+,并且不介意在AppleScript中使用Cocoa,您可以考虑使用NSDictionary
,这不是完全理想的,但可以有效地扩展并节省您的编写自己的代码很麻烦。