Very Hard Delight Life

内容はLinux, HW, プログラミング, HaFaBra.

sh

head, tailコマンドのもう一歩進んだ使い方

experiment.blog.so-net.ne.jp headおよびtailコマンドには大変お世話になっている. 特に,データの切り出しには重宝している. 例えば,4桁の16進数から末尾6ビットを切り出すコードは以下の通り. なお,使用するシェルはbashを想定している. HEX="05be"…

Hexadecimal => Binary with leading zero

bcコマンドを用いて二進数へ変換した場合、リーディングゼロが付かない。 一方で、二リーディングゼロを持つ二進数が欲しい場面はディジタル回路のテストベンチ作成において多い。 入力をfoo.hex、出力をfoo.binとする。 foo.hexには各行に16進数でデータが…

シェルスクリプト内部でのシェルスクリプトの呼び込み

blog.dacelo.info 自作の関数などを頻繁に使いたいときに. シェルスクリプトへのパスは相対パスだと面倒なので,スクリプトがあるディレクトリの絶対パスを取得した後に相対パスへ変更するとぶれないかも. source foo.shと同様に. foo.shが扱えるみたいだ…

bashでmakeコマンドの補完を有効化する

【Git】bashで補完機能を有効にする(bash-completion) | 雪の天秤 手順は以下の通り. "bash-completion"をインストール シェルを再起動,もしくはsource /etc/bash_completionを実行 makeコマンドでMakefile中に書かれているオプション(all, install, clean…

ディレクトリ名に空白が含まれている場合のnaiveな処理

for f in `find . -type f -name "*.tar" | sed -e 's/ /_/g'`; do tar xvf "`echo "$f" | sed -e 's/_/\\ /g'`" -C "`dirname $f| sed -e 's/_/\\ /g'`" ;done 以下の条件を満たすとき,このスクリプトが使える. ディレクトリ名に空白が含まれる カレント…

[sh][Linux] ランダムな4桁の16進数を生成するfasterな方法

ag-48.hatenablog.com 前回の続き. naive過ぎるので cat /dev/urandom | tr -dc [:xdigit:] | \ head -c `expr 4 \*1024` | \sed -e 's/\(.\{4\}\)/\1\n/g' と改良. これならばランダム性と4桁必ず出ることが保証されている. そして短い. 0.023 sec 程度…

ランダムな4桁の16進数を生成するnaiveな方法

cat /dev/urandom | tr -dc '[:xdigit:]' | head -c 4 | tr '[:upper:]' '[:lower:]' 最後のtrコマンドはおまけ. cat /dev/urandomは処理時間が掛かるためhead -c 1000 /dev/urandomの方が早い. ただし,必ずしも毎回4桁出力されるわけではない点に注意. …

xargsでシェル組込み機能(リダイレクトなど)を使う

参考: xargsでもパイプとかif文とか使いたい - BlankTar echo -n >cmd_list for f in `find . -type f -name ".log"`; do echo "perl foo.pl ${f} 2>&1 log_${foo/./_result.}" >> cmd_list done cat cmd_list | xargs -I % sh -c "%" xargsコマンドで並列処…