linux

Linuxコマンドラインでfortuneを日本語翻訳してcowsayに日本語を喋らせる

投稿日:2019年8月30日

緊張感が漂うことも多々あるIT開発現場、逼迫した状況が続く際は一服の潤いも必要です。
以前、Linuxログインした時にcowsayにfotuneを喋らせる伝統芸能で嗜みました。

日本語で喋ってくれればより和むんじゃないか、と思って遊んでみました。結果、面白訳に遭遇するとそこそこ和めます。

自然言語を翻訳するLinuxコマンド「Translate Shell」を入れる

引数で渡した日本語の自然文をgoogle翻訳に掛けてくれるコマンド。

インストール

公式に従ってgithubからcloneしてきます。

$ git clone https://github.com/soimort/translate-shell
Cloning into 'translate-shell'...
remote: Enumerating objects: 88, done.
remote: Counting objects: 100% (88/88), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 4515 (delta 44), reused 63 (delta 33), pack-reused 4427
Receiving objects: 100% (4515/4515), 2.47 MiB | 673.00 KiB/s, done.
Resolving deltas: 100% (2875/2875), done.

cloneしたディレクトリに入り、

$ cd translate-shell/

$ ls
CONTRIBUTING.md  Makefile   README.template.md  build.awk                 include  metainfo.awk  test.awk   translate-shell.plugin.zsh
LICENSE          README.md  WAIVER              google-translate-mode.el  man      test          translate  translate.awk

make

$ make
[OK] Task build completed.

make install。

# make install
[OK] Task build completed.
[OK] translate-shell installed.

インストール完了。transコマンドが使えるようになりました。

$ which trans
/usr/local/bin/trans

transコマンドを実行、英語 → 日本語翻訳してみる

transコマンドにen:jaオプションを付け、引数の英語を日本語に翻訳します。

$ trans en:ja 'hello world!'
hello world!

こんにちは世界!
(Kon'nichiwa sekai!)

「hello world!」の翻訳
[ English -> 日本語 ]

hello world!
    こんにちは世界!, 世界こんにちは!

色々余分なものが表示されて流用し辛いです。-bを付けると翻訳文のみの表示になります。

$ trans -b en:ja 'hello world!'
こんにちは世界!

使いやすくなりました。

本題、cowsayに日本語でfortuneを喋らせてみる

fortuneをtransにパイプして日本語化、cowsayにパイプしてみます。

またまたご冗談を。

$ fortune | trans -b en:ja | cowsay
 __________________________
< システムを再起動しています。お待ちください... >
 --------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

障害報告じゃなければいいけど。

# fortune | trans -b en:ja | cowsay
 ______________________
< オペレーターからのメッセージがあります。 >
 ----------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

温故知新の精神を思い出させてくれます。

# fortune | trans -b en:ja | cowsay
 ___________________________________
/ Unixを理解していない人は、Unixを再発明すると非難されます。 \
\ -ヘンリー・スペンサー                       /
 -----------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

男女の性質の違い、それによる失恋を乗り越える術を詩的かつ哲学的に教示してくれます。失恋も一つの学びか、なるほど勉強になる・・・って長いわ。

$ fortune | trans -b en:ja | cowsay
 _________________________________________
/ しばらくして、微妙な違いを学びます 手をつないで魂をつなぐ間、         \
| そして、愛はセキュリティを意味するものではないことを学びます          |
| そして、あなたはキスが契約ではないことを学び始めます              |
| そしてプレゼントは約束ではありません                      |
| そして、あなたはあなたの敗北を受け入れ始めます 頭を上げて目を開けて、     |
| 子供の悲しみではなく、女性の恵みで、                      |
| そして、あなたはあなたのすべての道を造ることを学びます 今日は明日だから    |
| 不確実すぎる。そして先物は 飛行中に落ちる方法、                |
| しばらくすると、あなたはあなたがあまりにも多くの場合、太陽の光さえ燃えることを |
| 学びます。 だから、あなたは自分の庭を植えて、待つのではなく、自分の魂を飾る  |
| 誰かがあなたに花を持ってきてくれます。                     |
| そして、あなたは本当に耐えることができることを学びます...          |
| あなたが本当に強いこと、 そして、あなたは本当に価値があります         |
| そして、あなたは学び、学ぶ さよならごとにあなたは学びます。          |
\ -Veronica Shoffstall、「Comes the Dawn」   /
 -----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

自動翻訳にかけると無限に迷文が爆誕してくれて飽きない。シェルにログインするのが楽しみになります。

まとめ

リモートシェルにログインする度に毎回違う光景が見れて楽しいです。不幸にもデスマに巻き込まれて極限状態にいる時、Linuxにログインした際優しい言葉を掛けられてふと我に返る、なんてことがあるかも知れません。

シェルログインした際に毎回違うアクションがあるとちょっと新鮮な気分になれるので、日々のシェル作業にマンネリ化を感じている方は、遊び心の一環として取り入れてみては如何でしょうか。

-linux
-, ,

執筆者:

関連記事

podman + docker-comopseでwordpressを起動

前回podmanをdockerとして使えるようになりました。 One IT Thing  1 Pocketpodmanをdockerとして使うhttps://one-it-thing.com …

CentOSで暗号鍵用のパスワードを生成

そこそこ長くて文字種の入り混じった強度の高いものを自分で考えるのは面倒です。 暗号化処理を使う際に必要なパスワード文字列を、mkpasswdコマンドでいい感じに生成出来るようにしておきます。 目次1 …

GitLabのIPを変更したらMattermostにログイン出来なくなった話「the redirect uri included is not valid. 」

目次1 発端2 環境3 GitLabのIP変更設定を開始4 そしてハマる5 解決6 結局どこに設定が保存されていたか7 まとめ 発端 先日オフィスの引っ越しが有りネットワークセグメントが変わる為、Gi …

テキストファイル内の改行コード差異を見つけるワンライナー

ファイル内容は同じなのにdiffで違いが出るWeb上でソースレビューする時に同じ内容の行なのに差分が出て紛らわしい これらの原因はWindows、Mac、Linuxが入り混じった、改行コードが統一され …

各種OSでのインデックスを使用した高速ファイル名検索と全文検索【Linux編】

目次1 目的2 環境3 使用コマンド4 ファイル名検索5 全文検索6 補足とインデックス更新7 まとめ 目的 CentOS上に存在する全ての「~.java」ファイルをリストアップします。上記の内「Sy …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。