コマンドライン標準入力からあいまい検索が出来る「pick」

コマンドラインの標準入力をあいまい検索してその結果を主治力出来るpickというコマンドを知ったので試してみました.

たくさんの環境パッケージがあります.今回はDebian sid amd64とRaspberry Pi OS buster armhfで pick パッケージを導入しました.

$ sudo apt install pick (1)
$ ls ~/Downloads/*.pdf | wc -l (2)
181
$ ls ~/Downloads/*.pdf | pick | xargs -I{} xpdf "{}" (3)
rpi (4)
/home/matoken/Downloads/rpi_DATA_CM_3p0.pdf
/home/matoken/Downloads/rpi_MECH_3b_1p2.pdf
/home/matoken/Downloads/RPi-Camera-User-Manual.pdf
/home/matoken/Downloads/rpi_SCH_3b_1p2_reduced.pdf
/home/matoken/Downloads/rpi_SCH_4b_4p0_reduced.pdf
/home/matoken/Downloads/rpi_SCH_ZeroW_1p1_reduced.pdf
/home/matoken/Downloads/RPi_Pi Pico_Digital Edition.pdf
  1. pick パッケージ導入
  2. pdfファイルがたくさんある
  3. lsの結果をpickを挟んでxpdfに渡す
  4. 「rpi」とキーワードを入力することで絞り込まれる

pick 01

上下カーソル入力で結果を選択,Enterで確定.確定された行はSTDOUTに出力され,今回の例では xpdf で開かれる.

コマンド結果が多くて grep を繋いでいくみたいなときに pick を使うとインタラクティブに絞り込まれたりしてわかりやすいです.

似たものに sysboxchoose-stdin というものもあります.

環境1
$ dpkg-query -W pick
pick    2.0.2-1.1
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64
環境2
$ dpkg-query -W pick
pick    2.0.2-1
$ lsb_release -dr
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
$ uname -m
armv7l
$ cat /proc/device-tree/model ;echo
Raspberry Pi 3 Model B Rev 1.2

Flickrにコマンドラインから画像をアップロードするFlickr-Uploadを試す

何時もはflickcurlを利用しているのですが,複数のアカウントに対応していないようなので別のツールを探してFlickr-Uploadを見つけました.

const char* config_filename = ".flickcurl.conf";

Install

$ sudo apt install libflickr-upload-perl

認証

  • URLを開くと認証画面になるので許可する
  • リダイレクトでダミーURLに飛ばされるのでそのURLをURL:のところに貼り付ける
$ flickr_upload --oauth
Please open this URL in your browser and follow the instructions:

https://api.flickr.com/services/oauth/authorize?oauth_token=72157697799378834-ad02ea9a475eac80&perms=write

When you authorize this app, you'll be directed to a dummy URL
that contains a confirmation code. Paste that URL here.

URL: https://127.0.0.1/?oauth_token=999999999999999999-deadbeefdeadbeef&oauth_verifier=123456bdeadbeef
Saving OAuth credentials to /home/mk/.flickroauth.st
Uploading /home/mk/.flickrrc...Can't read photo '/home/mk/.flickrrc' at /usr/share/perl5/Flickr/Upload.pm line 128, <STDIN> line 1.
  • ~/.flickroauth.st に認証ファイルが作られる
$ ls -l /home/mk/.flickroauth.st
-rw-r--r-- 1 mk mk 673  6月 24 08:47 /home/mk/.flickroauth.st

アップロード

$ flickr_upload --public 1 ~/Pictures/20180624_06:06:55-8334.jpg
Uploading /home/mk/Pictures/20180624_06:06:55-8334.jpg...
Waiting for upload results (ctrl-C if you don't care)...
/home/mk/Pictures/20180624_06:06:55-8334.jpg is at https://www.flickr.com/tools/uploader_edit.gne?ids=12345678902

10分毎に自動アップロード

2,12,22,32,42,52 * * * *    D=`date +\%m\%d\%H\%M.\%S` ; find ~/Pictures -newer ${HOME}/Pictures/.flickr_time \( -iname "*.jpg" -o -iname "*.png" \) -type f -print0 | xargs -0 -r -n1 flickr_upload --public 0 --tag 'autoupload' && touch -t ${D} ${HOME}/Pictures/.flickr_time

*/10+2とかできればいいのに

環境

$ dpkg-query -W libflickr-upload-perl
libflickr-upload-perl   1.60-1
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64