Googleマップローカルガイドからお祝いのメールがきた
突然こんなメールがきた。
Googleマップに俺の投稿した写真がこれだけ見られました! という内容のメールだった。
15万という数字は、おそらくローカルガイドを始めてからのトータル件数だろう。
せっせと写真を投稿したかいがあったようだ。 次は何万件でメールがくるんだろう?
ちなみに、今のローカルガイドの点数は350だった。
レベル5になるには500点とればいいのかな? まだ先は長いなー
500点まで頑張ろう
lsコマンドでディレクトリのみを一覧で表示
こんな状態から
Directory1 Directory2 Directory3 Directory4 Directory5 sample1.apk sample2.apk sample3.apk
ディレクトリのみ一覧で表示したい場合
ターミナルに以下をぶちこむ
ls -1F | grep /
表示結果
Directory1/ Directory2/ Directory3/ Directory4/ Directory5/
lsオプション説明
-1
1行に1ファイルずつ表示する
-F
ファイル名にファイル・タイプを表す記号を付けて表示する。ディレクトリは"/",実行可能ファイルは"*",シンボリック・リンクは"@",FIFOは"|",ソケットは"="で表わす
最後のスラッシュが邪魔だけど...
もっと良い方法ないですかね
Xmllintで属性を指定してXmlから値を取得
またまたシェルスクリプトとxmllintを使う機会があった。
今度はxmlに同名タグが複数存在しており、属性で絞って値を取るというパターンだった。
やりたいこと
以下のxmlがあったとする。
<!-- sample.xml --> <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <long name="aaa" value="12345" >いぬ</long> <long name="bbb" value="56789" >ねこ</long> </map>
longタグ内にあるname="aaa"のvalueの値「12345」を取得したい。
前回と同じくxmllintを使って取得する。
準備&おさらい
準備&おさらいとして、単にvalueのみを指定してxmllintで取る。
echo 'cat map/long/@value' | xmllint --shell sample.xml
結果はこうなる
/ > cat map/long/@value ------- value="12345" ------- value="56789"
name="aaa"もname="bbb"の両方のvalueがヒットしてしまう。
これを条件を与えて絞るようにする。
xmllintに条件を加える
name=aaaのみを得るには、long[@name="aaa"]
とする。
echo 'cat map/long[@name="aaa"]/@value' | xmllint --shell sample.xml
とすると、結果はこうなる。
/ > cat map/long[@name="aaa"]/@value ------- value="12345"
無事にname=aaaのみのvalueが取れた。
できた
あとは変数だけを取得するなら、自分はこうしてみた
value=`echo 'cat map/long[@name="aaa"]/@value' | xmllint --shell sample.xml |grep value= | sed 's/[^"]*"\([^"]*\)"[^"]*/\1/g'` echo $value
結果はこうなる。
1234
これで目標達成となった。
<br
おまけ
「いぬ」の値を取る場合はこうした。
value=`echo 'cat map/long[@name="aaa"]' | xmllint --shell sample.xml | grep value= | sed 's/^.*<long.*>\(.*\)<\/long>.*$/\1/'`; echo $value
結果はこうなる。
いぬ
参考リンク
- Test XML command line with xmllint | - Softwaretester -
ShellScriptとxmllintでxmlを解析
ShellScriptド素人がxmlの中身を取り出したかったので、色々調べた
xmllintとは
xmllintとはlibxml2を使用したツールで、XMLファイルに対して以下の機能を持ったのコマンドラインツールです。
このxmllintを使って、以下のxmlを解析して値&属性値を取り出す
sample.xml <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <top> <int name="hoge" value="327">100</int> </top>
327を取り出す場合、以下のようにする
echo 'cat /top/int/@value' | xmllint --shell sample.xml | grep value= | sed 's/[^"]*"\([^"]*\)"[^"]*/\1/g'
100を取り出す場合、以下のようにする
echo 'cat /top/int' | xmllint --shell sample.xml | grep value= | sed 's/^.*<int.*>\(.*\)<\/int>.*$/\1/'
参考にしたサイト
* ShellScriptでXMLの内容を取り出す | Opentone Labs.
* sedで「ダブルクォーテーションに囲まれた文字列」を抽出する方… - 人力検索はてな
adbでスクリーンショットをファイル名+年月日付きで出力する
.bashrcに以下を追加する
export ANDROID_SDK=AndrodSDKのパス alias sshot=$ANDROID_SDK"/tools/screenshot2 ~/screenshot.png; mv ~/screenshot.png ~/screenshot_`date '+%y%m%d%H%M%S'`.png"; # screenshot_160322141020.pngと出力される
保存するパスは自分で好きなように設定するべし
dose not contain the JNI_CreateJavaVM symbol
ついにMacBookProをEl Capitanにアプデした後、Aptana Studioを起動してみると
"/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib" does not contain the JNI_CreateJavaVM symbol.
というエラーダイアログが出て起動しなかった。
OMG!とビビりつつググると
下のリンクからJava for OS X 2015-001をインストールしなさい、とのこと
ダウンロード - Java for OS X 2015-001
あれー、これ前に入れたことあったような...
と思いつつインストールすると、あっさりとAptana Studioが起動
めでたしめでたし