xargsで実行結果が無いときは実行しない

よくfindコマンドとxargsコマンドを組み合わせますが,findの結果が0のときでもxargsは動いてファイルがないのでエラーが出力されてしまいます.

$ find . -name 'hoge' -print | wc -l

0

$ find . -name 'hoge' -print | xargs flickcurl upload

flickcurl: Minimum of 1 arguments for command `upload'

  USAGE: flickcurl upload FILE [PARAMS...]

Try `flickcurl --help' for more information.

xargsを使わないでfindの-execで回避できるのですが,xargsを使いたいです.

$ find . -name 'hoge' -exec flickcurl upload {} \;

manをみるとそのもののオプションがありました.

-r, –no-run-if-empty
If the standard input does not contain any nonblanks, do not run the command. Normally, the command is run once even if there is no input. This option is a
GNU extension.

早速試してみるとうまく行きました :)

$ find . -name 'hoge' -print | xargs -r flickcurl upload

StarDictからGoldenDictに移行した

The original StarDict project has recently been removed from SourceForge due to copyright infringement reports. Most of the files were lost with the demise of the project.

てことで後継のGoldenDictを試してみました.

StarDictでは辞書は英辞郎(テキストデータ版)とstardict-dic-jaを利用していました.

英辞郎の辞書は以下のページのscriptを利用してStarDict形式に変換しました.

eiji2sd_20160307.zipの中のPerl版(eiji2sd-text.pl)を利用して変換後StarDictの辞書ディレクトリにコピーしていました.以下は古めのマシンで実行しているので30分近く変換に掛かっていますが,通常はもっと短い時間で終わると思います.

$ unzip eiji2sd_20160307.zip
$ time perl eiji2sd-text.pl ../EIJIRO-1444.TXT
Now reading: yohimbine activation
Sorting...
Writing dictionary:  99% Zina
Done.

real    26m41.099s
user    3m3.413s
sys     0m7.541s
$ sudo install -b -D -g root -o root -m 0444 ./* /usr/share/stardict/dic/eijiro/

という状態でStarDictを利用していました.

GoldenDictの導入

20180511_17:05:38-1489

GoldenDictをディストリビューションパッケージで導入します.

$ sudo apt install goldendict

GoldenDictの辞書設定

導入したら早速起動して辞書の設定を行います.

メニューバーの「編集」->「辞書」で辞書ウィンドウを起動.
「ソース」タブの「ファイル」タブで「追加」ボタンを押し,辞書を追加します.GoldenDictもStarDictの辞書形式を利用できるのでStarDictの辞書ディレクトリを指定します.「/usr/share/stardict/dic」を指定しました.辞書データをGoldenDictの辞書ディレクトリに持っていってもokです.その場合は「`
追加したあと「再帰」チェックボックスにチェックをし,「今すぐ再スキャン」ボタンを押します.上部の「辞書」タブで辞書が反映されているか確認します.

20180511_20:05:16-26744

一旦ウィンドゥを閉じて,利用したいスキャンポップアップ機能を試します.タスクトレイのGoldenDictアイコンを右クリックして,「スキャン ポップアップ」にチェックが入っているのを確認して,適当な文字列を選択してポップアップウィンドウで辞書引きが出来るのを確認します.

20180511_17:05:24-20380

このままではちょっとポップアップが出る頻度が多くてうっとおしいですし,日本語入力が基本的に不可能になってしまいます.タスクトレイアイコンでOn/Offが出来ますが面倒です.

「編集」->「環境設定」の「スキャンポップアップ」タブの「すべての選択されたキーが押されているときのみポップアップを表示する」をチェックして有効にします.

20180608_14:06:17-1723

もう一つCtrl+c+cでもポップアップが表示されます.これは「ホットキー」タブの「クリップボードからの単語を翻訳するのに次のホットキーを使用します」が有効になっているためです.私はクリップボードへのコピー時につい2回cを押してこれを出してしまうので無効にしました.

20180530_05:05:23-12855

オンライン辞書の利用

「編集」->「辞書」の「ソース」タブの「Wikipedia」タブでWikipediaを引けるようになります.しかし,プリセットを有効にしても使えません.

20180511_18:05:19-17217

「アドレス」のURLをhttp://からhttps://に修正することで使えるようになりました.これが案外便利です.

20180511_18:05:40-14823shutter_18-05-11_19:35:24_001

Wikipediaが便利なので「Webサイト」タブで「ニコニコ大百科」と「はてなキーワード」も追加してみましたが表示されるまでの時間がかかりすぎるし,ヘッダーなどでコンテンツが見えづらいのでちょっとこのままでは使えなさそうです.

20180511_22:05:11-774120180511_23:05:11-26007

環境

Ubuntu 16.04 LTS arm64
Debian sid amd64