シェルワンライナー160本ノック問題81
問題81 BOMの識別
問題のファイルは
https://github.com/shellgei/shellgei160
からダウンロードできる。
普通に sed を使えばいいものをなぜか grep にこだわってわけのわからないことをしてしまった。
解答例は
cat bom.txt | xxd -p | sed "s/^efbbbf/$(echo -n '[BOM]' | xxd -p)/" | xxd -p -r
である。sed のコマンドはシェルが変な解釈をしないよう普段はシングルクォートで囲っているが今はコマンド置換を解釈してほしいのでダブルクォートで囲っている。これを知らず、今までなんも考えずに sed を使っていたことを反省しないといけない。