wc の mac/Linux 間での挙動の違い
自作 GitHub Actions で mac/win などの runner も対応させたいなと思って対応していた際に遭遇したのでメモ。早速 macos-latest でエラーになったので調べているとどうやら wc -l
を含むシェルでエラーになっていた。
ググるとすぐに以下の記事が見つかった。
Linux の wc コマンドを mac OS Catalina で使い、csv ファイルの行数をカウントしたい。
これまでは、標準出力させたもの(行数など)を数える際、脳死で wc -l
を使っていたが、どうやら macOS に搭載されている wc コマンドの挙動が若干 Linux のそれとは異なり、スペースを含んでしまう。
- Linux
$ echo -e "hoge\nfuga" | wc -l
2
- mac
$ echo -e "hoge\nfuga" | wc -l
2
対策
wc - l | tr -d ' '
とパイプで tr に渡してスペースを消してあげれば良い。他にもこうやればいいよというのがあれば Twitter などで教えていただけると大変ありがたい 🙏