iphoneでlinux

iphoneメモに2012年から体重計を記録しています。
測定項目は、体重、BMI、体脂肪、筋肉量、骨量、内臓脂肪、基礎代謝、体内年齢。
測定dataは、年初に暦年 測定項目名、次の行からは、日付と測定dataを週三回程度書き込んでいます。延々と続く巻物に記録している感覚です。現時点で1600行ぐらいでしょうか。
dataがかなりたまったので、sedとawkで暦年の最小値、最大値、平均値を求めるスクリプトをPC環境で書き、保存先はicloud。
iSHのディストリビューションはalpine。default directory は/root。軽量で動きは軽快です。
ios・linuxの使い方を検証してみました。

iSHとの連携


icloudをalpineにマウントできればベスト。いろいろ探っていくとテキストエディターLiquidLogicとiosファイルアプリが連携していることが分かりました。この機能を活用すればicloudとiSHの連携はできたも同然です。
iosメモは、icloud.com経由でicloudにとりこんでもいいし、LiquidLogicにコピペしiSHに保存する手もあります。俄然、iSHが身近になります。
今回は、PCで書いたscriptを取り込みますが、iSHで書いたscriptをPCで動かすこともできます。
画面はファイルアプリ(一枚目)、ファイルアプリにマウントされているデバイス(二枚目)、iSHファイルシステム(三枚目)。

作業手順


①体重データは、メモからtextエディターにペースト。iSHに保存。
②sedで暦年dataを抽出(下記は2022年の場合。data名はhealth。抽出ファイル名はh222)。  
  sed -n “/2022/,/2023/p” healrh | sed “/2023/d” > h222
抽出したファイルの最終行に2023の一行が含まれているので、パイプで2023の行を削除。
③awkで最小値、最大値、平均値を計算するスクリプト(サンプル)

スクリプト名 3mh.awk
## ヘルスメータ一暦年data整理
## min、max、meanを求める
NR == 1 {for (i=1;i<=NF;i++) {name[i]=$i;min[i]=10000;max[i]=0}}
# 各項目の合計とmin・max抽出
NR > 1 {for (i = 2; i <= NF; i++)  
	{sum[i] += $i
	if($i < min[i])	min[i]=$i
	if($i > max[i]) max[i]=$i
	}
}
# 結果印刷
END {cnt=NR-1;
    printf "  %4s年 health meter  測定回数 %5d回\n",name[1],cnt
    printf "      項目     min.     max.     mean\n"
    for (i=2; i <= NF; i++)
	printf "%10s %8.1f %8.1f %8.2f\n",name[i],min[i],max[i],sum[i]/cnt
}

2022年の結果

使ってみての感想

iSHを本格的に使うなら、bluetoothキーボードを使った方がいいでしょう。
iSHにはソフトキーボードが備わっていますが、長時間使用には耐えられないと思います。
PCを持ち歩かずlにinuxに触れることはいいと思います。デバイスがマウントできれば言うことはありませんが現状で十分に使えると思います。emacs、vimはインストールすれば使えます。emacsは応答が遅いです。また、LiquidLogicがあれば、vimは必要ないかも知れません。

今回の試行について。メモには体重計のdataが日々追記されていきますので、暦年途中でもiphoneで経過数値を得ることができます。自己満足かも知れませんが、日頃のトレーニングの励みにはなります。