Bashワンラインの備忘録

はじめに

使えそうな技があれば、備忘録として随時追加していきます。

ワンライナーとは

ログ調査など、スクリプトを書くほどではないが、複雑な処理が必要なときに1行でコマンドを書く人のことです。

コマンドの繋げ方

| パイプ

パイプはcommand1の出力をcommand2に渡すことができます。

; セミコロン

command1の成功可否に関係なくcommand2を実行します。

&& 論理積

command1が成功したときのみ、command2を実行します。
command1 成功時:$? の戻り値が0

|| 論理和

command1が失敗したときにcommand2を実行します。
comannd1 失敗時:$? の戻り値が1
comannd2 成功時:$? の戻り値が0

xargs -I {}

command1 で実行した出力をcommand2の引数として実行できます。

ループ処理

while read line

ヒアドキュメント(<)に指定したファイルを1行ずつ読み込みcommand1処理を実行します。

while :; do [command] ; done

watchコマンドが使えないときや、一定の時間間隔でデータを取得したいときに便利です。

1秒ごとに(」・ω・)」うー!(/・ω・)/にゃー!を実行します。
(無限に実行します。whileの条件が「:」のため)

for i in ; do [command] ; done

1[n]秒ずつコマンドを実行し、指定した回数繰り返します。

awkコマンドのワンライン化

通常のawkプログラム

awkプログラムをワンラインで書く

最後に一言

普段ちょっとしたデータ取得は上記のコマンドでなんとかなってます。
上記のコマンドは例ですが組み合わせで大体どうにかなっています。
もっと便利な方法がありましたら、ぜひコメントやTwitterで教えてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です