[Mac] sedがバッファリングする件

Macのターミナルで日々流れていくログをsedで加工しようとしたのですが BSDのsedはバッファリングするのがデフォルトで無効にできない事がわかりました。 具体的には、sedを複数並べて処理しようとしたのですが、バッファリングしてしまって処理がそこでストップしてしまいました。 今考えたら、-eとかでコマンドを連結すればよかったかもしれません。 回答としては、gsedをインストールして使うのが良いです。 GNUのsedなら-uでバッファリングしないようにできるので使い勝手が良いです。 注意点としては、Macのsedとオプションの引数が違います。 ```bash `gutter:false; $ echo "The quick brown fox jumps over the lazy dog." | gsed -ur 's/fox/cat/' The quick brown cat jumps over the lazy dog. ``` -uでバッファリングしない -rで拡張正規表現を使う 簡単な解析ならターミナルでチョチョっとできるのがMacやLinuxなどのUnix系の利点です。 最近はWindowsもWSLなどでLinuxが使えますが、お手軽さではやはり負けると思います。

0 件のコメント :

コメントを投稿