Awesome Hacks!

プログラミング初心者なので地道に勉強していきます。分からない人の立場から整理していきます。

シェルスクリプト

シェルスクリプト_進捗状況を表示

たぶんこれを使えばゲージとかも表現できそう http://blog.livedoor.jp/akf0/archives/52155434.html

LINUX_「tail -f」コマンドでログファイルがローテートしても継続して見続けるには

なあんだ、知らなかった。 画期的。 tail -F test.log

シェルスクリプト_プロセス(シェル)を二重起動させない

丁寧で分かりやすいサイトがあったので紹介。 シェルスクリプトの二重起動禁止 - tetsuyai’s blog シンボリックリンクを使う理由についてはこちらに詳細が説明されていた↓ Linux - 多重起動を防止する方法 - Qiita シンボリックリンク使用時の注意点↓ http:/…

ファイルの行をランダムに入れ替える

$ cat inFIle.csv.tmp +A.,+1.,0, +A.,+1.,+1., +A.,+1.,+2., ・ ・ ・ +F.,+4.,+997., +F.,+4.,+998., +F.,+4.,+999., $ cat inFile.csv.tmp | while read x; do echo -e "$RANDOM\t$x"; done | sort -k1,1n | cut -f 2- > inFile.csv $ cat inFile.txt +A.…

時間を測る

bashにてSECONDという変数は内部で自動的に毎秒ごとに1加算される様子。 例えばシェルスクリプトにて時間を計測したい開始時点で0で初期化しておいて、処理後にどれだけかかったかもう一度参照すると経過時間が格納されている。 詳細は下記サイトを参考に↓…

Mac_シェルスクリプトで改行させない

Macでは、シェルスクリプトで「echo -n」では改行できない。 /bin/echoを使う $ cat prac1.sh #!/bin/sh /bin/echo -n "abc" echo def $ ./prac1.sh abcdef $

シェルスクリプトの高速化

シェルスクリプトの高速化 業務でシェルスクリプトの高速化を追求する必要が出てきたので、整理。 シェルスクリプトノウハウ - モノノフ日記 ShellScript - shellで書かれたbatch scriptを手軽に高速化する - Qiitaループ文のリダイレクト、パイプとバックグ…

sortコマンド

sortコマンドは思ったより高機能だった。 各行を"文字列"として"昇順に"ソート $ cat testFile.txt | sort 1000,a,1000,30 20,b,500,1000 300,c,700,200 $ 各行を"数値"として"昇順に"ソート ※動作未確認 $ cat testFile.txt | sort -n 300,c,700,200 1000,a…

シェルスクリプト_正規表現

直前文字の繰り返し数指定 ・直前文字が0個以上 例)「ありました」と出力される if [ $(echo abde | grep abc¥?de) -eq 0 ] then echo ありました fi ・直前文字が1個以上 例)「ありました」と出力されない if [ $(echo abde | grep abc¥?de) -eq 0 ] then e…

シェルスクリプト_breakで多重ループを抜ける

多重ループ内でbreak時に幾つの階層分breakするか指定するには、breakに引数で抜けたい階層数を指定してあげる break 3

awk_フィールド番号を取得する方法

他にもやり方があるかもしれないが、調べても分からなかったので。 CSVファイルから読み込んだ行の中で該当するキーワードが何番目にあるか調べる場合

シェルスクリプト_動的な変数名を使う

変数名str_1,str_2,str_3をループで回したい…そんな時に。

egrepコマンド

自分自身現時点では使い慣れていないが、はっきりいってgrepよりこっちの方が便利。 複数「grep -e」でつかんだり、逆に複数「grep -v」で除去するときも、egrepの方が 簡易。 $ cat egrepTest.txt abcdef ghijkl abc123 ghiabc 111222333 dddeeefff dddeeef…

初期化していない変数を参照した場合

何も格納されていないシェル変数をいきなり参照した場合には初期値のnullで置き換えられるらしい。ただし、ソースは不確か(サイトに書いてあった)