ターミナル上でひらがな⇔ローマ字変換は uconv を使うとできるのだけど、ひらがなからの漢字変換候補を得る方法が無いのかなー、と常々思っていた。 で、別件で調べ物をしていた時に kkc なるものを知った。これを使うことで、IMEから変換候補を取得することができるようだ。

Ubuntuであれば、以下のコマンドでインストールができる。

sudo apt install libkkc-utils

インストールできたら、以下のようにコマンドを実行することでIMEでの変換候補を取得できる。

echo 変換する文字列 取得数 | kkc
blacknon@BS-PUB-DEV...

シェル芸で繰り返し同じコマンドに出力をパイプで渡して処理をさせる

シェル芸botで遊んでた際、echo-sdをネストさせて表示するという処理があったので、なんかいい感じに回数増やせないかなと思って調べてみた。 で、パイプ付きの処理をブレース展開させてevalで実行させて、その時に最後にcatで出力を読み込ませてみたらいい感じに処理させることができた。

command | eval 'command |'{,,} cat

例えば、echo-sdをネストさせる場合だと以下のようになる。

echo-sd | eval 'xargs echo-sd |'{,,,} cat

他に使いみち無いかな…と思って考えてみたところ、hashのストレッチングに...


Twitterでそういった処理についてできるかどうかというのを見かけたので、実際どうなんだろと思って調べてみた。 結論としては、残念ながらgit単体では難しいみたいで、実現するにしても以下のように無理やりシェル芸で実現するとかになるようだ。

git clone git@github.com:blacknon/lssh.git && cd $(basename $_ .git) && git branch -r | grep -v '\->' | sed 's|origin/||g' | xargs -I@ -n1 git checkout -b @ origin/@

CentOSやUbuntuを使ってたサーバである程度運用を続けていると、updateの都度過去のkernelが溜まっていってしまい「/boot」配下の空き容量が無くなってしまう事がある。 そのまま放置して100%になるとyumやapt実行時にエラーになってしまうので、本来はちゃんと定期的に整理する必要があるのだけど、結構うっかりして放置してしまうことがある。で、今回はそんな/boot配下の不要なカーネル等の一括削除を行っていく。

1. CentOSの場合

CentOSの場合、yum-utilsパッケージのpackage-cleanupコマンドが入っているかどうかで対応が異なってくる...


gitの利用状況をターミナルからTUIで確認できる『grv』

別件の調べ物をしていたところ、gitの利用状況をターミナルからTUIで確認できるという『grv』なるツールを見かけた。 Golangで書かれているようなのだが、コンパイルにはmake installをしてやる必要があるようだ。Linuxであればすでにコンパイル済の実行ファイルがあるので、以下のコマンドでダウンロード、インストールが行える。

wget -O grv https://github.com/rgburke/grv/releases/download/v0.1.2/grv_v0.1.2_linux64
chmod +x ./grv
./grv -repoFilePath /pa...

ちょっとした作業で、テスト用のユーザデータを作る必要が出てきて「なんか良いのないかなー」と思って探してみたところ、fakerというPythonのツールがいい感じにデータを生成してくれたので、記録として残しておくことにする。ライブラリとしても利用できるようだ。 localeの設定に応じて出力してくれるサンプルも変えているようで、日本語の名前や住所、メールアドレスも取得できるらしい。 fakerはPythonで書かれており、以下のコマンドでインストールできる。

pip install faker

インストールができたら、helpを見てみよう。

blacknon@BS-PUB-UBU...

シェル芸で麻雀牌、ポーカーの札を配ってみる

絵文字について少し調べてたところ、(2018年時点だと機種は選ぶのだが)どうも麻雀牌やトランプの絵柄全種の絵文字が用意されているらしい。

つまり、ターミナル上で適切にコマンドを叩いてやれば、麻雀やポーカーの初手を得る事もできるということになる。 で、実際やってみることにした。 (よくよく見たら、seqで0入って無くて東が出力されてなかったので修正)

まず、以下のコマンドで麻雀牌、トランプの札をゲームに必要な数だけ(トランプの場合はジョーカーは1種類で2枚)取...


先日、ふとローマ字入力からひらがな/カタカナへの変換をコマンドでできないかなーと思って調べてたところ、どうもuconvなるコマンドであればそれができそうだったので試してみることにした。 以下のコマンドで、CentOSやUbuntu、Macにインストールができる。

sudo apt-get install icu-devtools
sudo yum install icu
brew install icu4c # 別途pathを通す必要あり?

uconvコマンドでは、「-x 文字種別」でその文字列に変換する事ができる。 たとえば、以下のようにコマンドを実行してみる。

echo a...

だいぶ前にそんなことをして遊んでたのだけど、そういえば残してなかったなと思ったので書いておく。 以下のようにコマンドを実行することで、ターミナル上に九九の表を出力できる。

seq 9 | xargs -I@ seq -f'@*%g' 9 | bc | xargs -n9
seq 9 | xargs -I@ seq -f'@*%g' 9 | bc | xargs -n9 | rev | column -t | rev # キレイに表示する場合
blacknon@BS-PUB-UBUNTU-01:~$ seq 9 | xargs -I@ seq -f'@*%g' 9 | bc | xarg...

ふと、行単位で重複した要素のない行のみを抽出してみようということがあったのでやってみた。 どんな方法があるかと考えたけど、困ったときはやはりawkで対応してやるのが楽だ。

command | awk '{for(i=1;i<=NF;i++){if(!x[$i]){x[$i]++;y++};printf (NF==y) ? $0"\n" : ""}y=0}'