<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Apple Geek &#187; plist</title>
	<atom:link href="http://theapplegeek.ru/archives/tag/plist/feed" rel="self" type="application/rss+xml" />
	<link>http://theapplegeek.ru</link>
	<description>Чему ты научился сегодня?</description>
	<lastBuildDate>Fri, 30 Jul 2010 13:48:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Получение последних запущенных приложений через shell (XPath)</title>
		<link>http://theapplegeek.ru/archives/3089</link>
		<comments>http://theapplegeek.ru/archives/3089#comments</comments>
		<pubDate>Tue, 26 Jan 2010 13:10:23 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[plist]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=3089</guid>
		<description><![CDATA[В процессе копаний с сервисами мне попался на глаза plist com.apple.recentitems.plist, в котором хранятся последние 10 хостов, приложений, документов и серверов. Решил сделать команду, которая выдаст 10 последних запущенных приложений, разделённых знаком &#8216;#&#8217;. Использовал две программы &#8211; plutil (работа с plist) и xpath (perl-интерфейс для xml/xslt). Не уверен, есть ли они в базовом Mac OS [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://theapplegeek.ru/wp-content/uploads/2010/01/00_xpath-thumb1.png" height="168" align="right" width="160" style=" display: inline; float: right; margin: 0 0 10px 10px;" /></p>
<p>В процессе копаний с сервисами мне попался на глаза plist com.apple.recentitems.plist, в котором хранятся последние 10 хостов, приложений, документов и серверов.</p>
<p>Решил сделать команду, которая выдаст 10 последних запущенных приложений, разделённых знаком &#8216;#&#8217;.</p>
<p>Использовал две программы &#8211; <noindex><a rel="nofollow" href="http://theapplegeek.ru/goto/http://devworld.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/plutil.1.html" >plutil</a></noindex> (работа с plist) и <noindex><a rel="nofollow" href="http://theapplegeek.ru/goto/http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man3/XML__XPath.3pm.html" >xpath</a></noindex> (perl-интерфейс для xml/xslt). Не уверен, есть ли они в базовом Mac OS X, но с установленным XCode точно есть.</p>
<p>Команда мозгодробительная:</p>
<pre>
$ plutil -convert xml1 -o - ~/Library/Preferences/com.apple.recentitems.plist | \
  xpath '/plist/dict/key[text()="RecentApplications"]/following-sibling::*[1]/array/dict/string' | \
  sed -e 's/&lt;string&gt;//g' -e 's/&lt;\/string&gt;/#/g'
</pre>
<p>Но сил на убирание &#8220;&#8211; NODE &#8212; &#8221; уже не осталось, поэтому косметические изыски оставляю вам.</p>
<p><span id="more-3089"></span></p>
<p>Вот, например, мои последние запущенные программы:</p>
<pre>
Mailplane#LittleSnapper#Woopra#fseventer#PlistEdit Pro#
Speed Download#PListChecker#TextEdit#Archive Utility#TextMate#
</pre>
<p>Для экспериментов c XPath можно использовать программу <noindex><a rel="nofollow" href="http://theapplegeek.ru/goto/http://www.ditchnet.org/aquapath/" >AquaPath</a></noindex>, только сначала нужно преобразовать бинарный plist в xml:</p>
<pre>
$ plutil -convert xml1 -o - ~/Library/Preferences/com.apple.recentitems.plist > 1.xml
</pre>
<p>А потом скормить полученный xml в программу и написать правила XPath:</p>
<pre>
<b>Context Node:</b> /plist/dict
<b>XPath:</b> key[text()="RecentApplications"]/following-sibling::*[1]/array/dict/string
</pre>
<p style="clear: both"><a href="http://theapplegeek.ru/wp-content/uploads/2010/01/01_xpath-full.png"  class="image-link" rel="lightbox[3089]"><img class="linked-to-original" src="http://theapplegeek.ru/wp-content/uploads/2010/01/01_xpath-thumb.png" height="264" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p><br class='final-break' style='clear: both' /></p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/3089/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (user agent is rejected)
Page Caching using memcached (user agent is rejected)
Database Caching 3/10 queries in 0.007 seconds using memcached
Object Caching 414/420 objects using memcached

Served from: theapplegeek.ru @ 2010-07-31 02:46:50 -->