Lesson20.テキストファイルを行ごとに配列に読み込む
ワークフロー
指定のHotkeyを押すと、その時選択している文字列を名言としてファイルに追加します
名言のファイルには1行に1つの名言と出典を保管するのですが、出典(人名)はユーザーに
記入してもうらことにしました
記入が必要になるので、名言はテキストファイルの1行目に追加しています
(最後に追加すると、出典を書くためにスクロールが必要となる場合がでてきますので)
1行目への追加は、割と単純なロジックです
一旦ファイルから全データを変数に読み込んで、catで出力する時に
今回追加するものを1行目に、その後に読み込んだ全データを出力させています
出力後にファイルをオープンして、記入してもらうスタイルにしています
ちょっと効率が悪いかもしれませんね
今回は、Randomユーティリティを使わずにスクリプトで作ってみました
名言のリストは1行に1名言という形式にしていますので
ランダム表示の前提として、行ごとに配列に読み込ませています
そのため、区切り文字(IFS)を改行に変更しています
ランダムな選択は$RANDOM変数を名言の件数(読み込んだ行数)で割算した余りを
利用しています
なお、zshにしているので、最小値が1となるようにしています
最後に、PostNotificationオブジェクトに送るときに、『(』で改行しています
ランダム表示関連の制御ではないですが、名言収集の際に選択中のテキストがない場合には
エラーをPostNotificationで通知するようにしています
Lesson13のFavorite Pagesワークフローからの派生です
お気に入りサイトではなく、お気に入り言葉にしてみました
自分で集めた名言をランダムに表示
1.Alfredworkflowをダウンロード
2.ファイルをダブルクリックしてワークフローに登録
Hotkey『⌥M』で選択中のテキストを名言集に登録(出典の記入が必要)
(ホットキーはご自身で設定が必要です)
キーワード『meigen』を入力すると、自分で集めた名言をランダムに表示