ワンライナー
プログラムだよ
中身が1行だけだよ
あるいは、1行で書かれたコマンドの組み合わせだよ
簡単に書くよ
ワンライナー(英:one liner)とは
華麗な職人技によって処理を全部1行に詰め込んじゃった「中身が1行しかないプログラム」のこと。
あるいは
1行でサクっと書いた「コマンドを組み合わせたもの」のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ソースコード」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ソースコードは「人間語で書いたプログラムの元ネタ」です。
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。
コンピュータさんは人間語が分かりません。
人間様はコンピュータさんの言葉が分かりません。
プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。
次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。
コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。
かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。
この話で登場した
人間語で書いたプログラムの元ネタ
を「ソースコード」と言います。
以上を踏まえて
ソースコードの中身が1行しかないプログラム
が「ワンライナー」です。
華麗な職人技によって、ずらずらっと処理が1行に詰め込まれているプログラムです。
例えば、そうですね。
ピヨ太君が以下の内容のソースコードを書いたとしましょう。
1.アンパンを買って来い
2.牛乳を買って来い
3.肩を揉め
このソースコードをピヨ子さんが以下のように書き換えました。
アンパンと牛乳を買って来た後で肩を揉め
ピヨ子さんの書いたソースコードがワンライナーです。
繰り返しになりますが、ソースコードは「人間語で書いたプログラムの元ネタ」です。
プログラムは「コンピュータさんに対する命令の寄せ集め」です。
つまり、ワンライナーは
コンピュータさんに対する命令を1行で書いたもの
と言えます。
そこから派生して……かどうかは知りませんが、プログラムではなく「1行で書いたコマンドの寄せ集め」を指して「ワンライナー」と表現している場合も あります。
ショボい例で恐縮ですが、Linuxとかで
grep piyota hoge.txt|grep -v piyoko|wc
を実行すると
「hoge.txt」内の「『piyota』があるけど『piyoko』がない行」の数
を表示してくれます。
この1行で書いたコマンドの寄せ集め
grep piyota hoge.txt|grep -v piyoko|wc
がワンライナーです。
今回の例はショボかったですけどね。
1行だからといって「どうせ単純でショボい処理なんでしょ?」と思っては いけません。
どちらかといえば「えっ!?こんなにスゴい処理をやっているのに中身が1行だけなの?!」なプログラムや「おっ、1行だけのサクっとした記述だけど便利だね!」なコマンドの組み合わせが「ワンライナー」と呼ばれます。
一言でまとめるよ
まぁ「ワンライナー」って単語が出てきたら「1行で書かれた処理なんだな~」と お考えください。
おまけ
■訳してみるよ
「one(ワン)」の意味は数字の「1」です。
「liner(ライナー)」は「line(ライン)」+「er」です。
「line(ライン)」の意味は「線」とか「行」とかです。
接尾辞「er」を付けると「~する人」とか「~するもの」的な意味になります。
何となく くっつけると
1行の人
となります。






