次のような800行を含むファイルがあります。
id binary-coded-info
---------------------------
4657 001001101
4789 110111111
etc.
ここで、それぞれ 0 または 1 は何らかの機能の存在を表します。このファイルを読み取り、バイナリ コード化された情報に対していくつかのビット単位の論理演算を実行したいと考えています (演算は、ユーザー入力と 3000 行の 2 番目のファイルからの情報に依存します)。次に、これらの再計算されたバイナリ コード化された情報をファイルに書き込む必要があります (末尾にゼロを付けて、たとえば
4657 000110011
4789 110110000
etc.
独自の基数変換ルーチンを作成せずにこれを行うにはどうすればよいですか? 私は何に対してもオープンです。Python、perl など、私が知らない言語も受け入れます。コンパイルせずに動作するはずです。
これまでのところ、私は自分のやり方でスクリプトを作成し、awk し、sed しようとしました。これは(私が思うに)次のことを意味します:base-2としてバッチ読み取り、base-10に変換、ユーザー入力と2番目のファイルに応じてビット単位の操作を実行、base-2に変換、先行ゼロを追加して出力。ファイルに多くの行があるため、bc を使用するための通常のコンソール ヒントはエレガントに見えません。dc.sed についても同様です。また、 awk には、入力にバイナリとしてフラグを付けるのと同等の機能がないようです( "echo $((2#101010))" のように)。 また、printf トリックはバイナリでは機能しません。では、これを最もエレガントに行うにはどうすればよいでしょうか?