Very Hard Delight Life

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

Linux

効率的なHDL開発環境を求めて1-1: Dockerによる仮想環境の構築

Dockerとは? ある程度人口に膾炙した技術であるため割愛。 公式ページ wikipedia 日本語の解説記事 Dockerを使うと何が良い? ホストOSに依存せずにEDA環境が構築できる。 WindowsだろうとLinuxだろうと問題なし EDAツールのバージョンを統一しやすい ホス…

直積の求め方

Introduction プログラムのテストの際,各変数の組み合わせをすべて網羅したいときがあります. そういうとき,よくあるのがShellscriptによるfor文ですが, for K in 2 4 8 16; do for L in 1 2 3 4; do for M in 100 200 300 400; do echo "./foo -k $K -l…

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進数でデータが…

vimのレジスタ

d.hatena.ne.jp vimで, 文字列をインクリメント検索 その後,検索でヒットした文字列をどこかに書き加えたい なんていうこと,ありません? そのときはvimのレジスタを使用すればよいらしく,よく使うのが, ctrl-r+/とctrl-r+“. ctrl-r+/はミニバッファ(…

CentOS6にバージョンの新しいGCCシリーズをインストールする

CentOSに新しいバージョンのGCC/G++(4.8/4.9)をインストールする - TASK NOTES qiita.com CAD/EDAツールはCentOSを主に動作保証Linuxとしている。 一方で、CentOSにYUM(DNF)でインストールされるGCCシリーズはバージョンが古すぎて、プログラミングに支障が…

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

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

colorschemeの設定

github.com 最近Neovimに切り替えた. ターミナルモードが凄まじく快適である. X-Windowも立ち上がるため,外部アプリケーションも立ち上げられるのは非常に助かる. オススメのカラースキームは"papercolor-theme"である. darkがなんとも言えないネオン風…

ディレクトリ名に空白が含まれている場合の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コマンドで並列処…