Linux作業基礎知識:ワンライナー
2020 年 11 月 16 日 by hiro-kLinux環境でほぼ必須と言われるぐらい大事なワンライナーですが、
今回は基礎的なことについて、Linux環境をこれから触ってみようと
思っている方に伝えれたらと思っています。
・ワンライナー とは
Linux環境で作業をされたことのある方は聞いたことがあると思いますが、
やりたいことを1行でコマンドを組み合わせて書いたプログラムになります。
例えば、
% grep hoge * | awk -F: ‘{print $1}’ | sort -u
といった形で複数のコマンドを1行で記述したものをワンライナーと言います。
—————————————————————
上記はカレントディレクトリ配下にあるhogeという文字列を含むファイルの一覧を返却します。
各コマンドの説明ですが、
grep hoge *
でカレントディレクトリ配下にあるhogeを含むファイルを取得します。
実行結果は
a.dat:ahoge
a.dat:hoge
b.dat:hogeb
b.dat:hoge
c.dat:chogec
で、上記が標準出力に出力されます。
その標準出力結果に対して処理を行うため”|”で区切り、
awk -F: ‘{print $1}’
で”:”で分割し、先頭を標準出力に出力すると以下の結果となります。
a.dat
a.dat
b.dat
b.dat
c.dat
この結果に対して処理を行うため”|”で区切り、
sort -u
でファイルをユニークにします。
すると以下の結果が得られ、hogeという文字列を含むファイルの一覧が取得できます。
a.dat
b.dat
c.dat
※:ファイル一覧を取得するだけなら
grep -l hoge *
でもできるので、これはあくまで簡単に説明するための例だと思ってください。
—————————————————————
・ワンライナー の利点
プログラムを一々書かなくても、やりたいことが実現できるということ、
手順書等の文書でも、複数コマンドを記述しなくてよいので説明が楽であること等
簡略化させるために役立ちます。
・ワンライナーとして利用できるコマンド
標準出力に結果を出力するコマンドで以下のコマンドがよく利用されます。
ls
grep
find
cat
sed
sort
head
tail
awk
xargs ※他とは少し毛色が違いますが、よく使うので記述します。
簡単にですがワンライナーについて書きましたが、
様々なことが1行のコマンドで出来ます。
色々試して思い通りの結果が返ってくると面白くなってきますので、
試してみてください。