Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー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 を使っていたことを反省しないといけない。