ちょっと前に、awkを使ってscriptコマンドで取得するターミナルログにタイムスタンプを付与する(Teratermとかのログみたいにする)処理について記述したことがあったのだが、この状態だとバックスペースなどの制御文字やカラーコードが残っている状態になってしまう。 catなどで見る分には問題ないのだが、lessなどで確認するにはちょっとよろしくないよねということで、そういった制御文字やカラーコードを記録中に削除してしまうことにする。

で、よく制御文字を削除する方法としてはcolコマンドが用いられるのだが、この方法だとファイルを読み込んで削除はできても追記での削除はできないようだ。 な...


日本語WordNetを使ってコンソール上でシェル芸で類義語(日本語+α)を調べる

前に、「〇んこ」みたいな伏字の候補をシェル芸で見つけたりしてたのだが、ふと「類義語」ってコンソール上で得ることができないのかな…?と思い調べてみた。

調べてたら「日本語WordNet」なる日本語辞書のプロジェクトがあるらしい。 基本は辞書ファイル(sqlite3)をダウンロードして使うようなのだが、こちらWebから検索できるものがあった。 ということはスクレイピングをすればいけるだろうということで、実際にやってみることにした。

で、その結果。 grepだけで抽出できるかと思ったけど、ちょっとうまくいかなかった。

curl -s --data "lemma=ちんこ&...

アルファベット順にn文字ずらした文字列を生成する、いわゆるシーザー暗号(Caesar cipher)
これをLinuxコンソール上でワンライナーで作成させるには、どうすればよいのだろう?と思ったので、少し調べてみた。

とりあえず、以下のようにコマンドを実行することでアルファベットの小文字を任意の数ずらすことが可能だ。
(○にずらす数を入れる)

コマンド | tr $(printf %○s | tr ' ' '.' | tac)\a-z a-za-z # アルファベットをずらす
コマンド | tr a-z $(printf %○s | tr ' ' '.')\a-z # ずらし...

Linuxコンソール上でランダムなテキストデータを作成する場合、「/dev/random」を読みこませると良いだろう。
以下のようにコマンドを実行することで、各行が指定した文字数でランダムな文字列を生成させることができる。

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w <文字数> | head -<行数>
blacknon@BS-PUB-UBUNTU-01:~$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -10
ZbCHUnpLykIrgc6dYmO1
QgUg...