ゴールデンウイークシェル芸問題を解きました
何日か経ちましたし、もういいですよね……
課題
>
1から100まで数字が書いてあるansというファイルを作り、ansの中から素数でない数をワンライナーだけで消し去ってください。(ansの中身を書き換えるということです。forもwhileもなしで、コマンドはパイプでつないで。)
|
|
はじめの回答
|
|
課題
awkのバッファリングに依存しており、問題の100件程度では問題ないのですが、件数が多くなると壊れます。
|
|
また、Cシェル系(csh/tcsh/zsh)ではうまくいきましたが、Bシェル系(sh/Bash)ではうまくいきませんでした。
別解
TL上には様々な解が出ていましたが、自分はヒアドキュメントを生成して評価する、という手法で解決しました。
|
|
こちらはcsh/tcsh/zsh/sh/Bashで確認済みです。
※模範解答は moreutilsの sponge コマンド使うやつですよね