Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2832

俺的Shellワンライナーチートシート(仮)

$
0
0

はじめに

変態ワンライナーシェル芸人を目指す私が,ああこれどうやるとワンラインで書けるんだっけ,という時に見るやつ.いつか整理する.この世の全てをパイプで繋ぎたい.
よくcで書いて出てきたログファイルをshellで処理しています.

ファイルが存在していたら削除

non-oneline.sh
if[-f hoge.log ];then
    rm hoge.log
fi
oneline.sh
test-f hoge.log &&rm hoge.log

変数を使い回す時に四則演算する

cのdefineで設定する定数をshell側でも使い回したい時がある.しかも,四則演算したい時がある.1引きたいとか.
例えば,100回のイテレーションをcで回して,出てきた100回分の生データをshell側でforループで回して処理したい.この時,shell内で変数を0-99の間で動かしたい.みたいな.うまく説明できない.

結論,exprは遅いので,$((...))を使いましょう,という話.

analyze.sh
NUM_ITERATION="100"

gcc -DNUM_ITERATION=${NUM_ITERATION}-o ./simulation ./simulation.c
./simulation > ./row.log

for i in`seq 0 $((NUM_ITERATION -1))`;do
    grep"episode ${i}" ./row.log | awk'{hoge}'done

grepでAND/OR

ANDは直感通り,ORはいっつも忘れちゃう.

letsgrep.sh
# grep de ANDcat file.log | grep"hoge" | grep"fuga"# grep de ORcat file.log | grep-e"hoge"-e"fuga"

Viewing all articles
Browse latest Browse all 2832

Latest Images

Trending Articles