こんにちは。最近ハマってしまったことを自分用のメモとして残しておきます。
macのターミナルをLinuxのノリで使っているのですが、一部ハマってしまったので、戒めを兼ねてここに残しておきます。
個人用のMacですと、以下のような区切り文字を複数指定したawkは問題なく動作しました。
echo aaaa,bbbb,cccc:dd:e |awk -F'[,:]' '{print $1','$4}' aaaa dd
しかし別のMacでやると、区切り文字を複数指定したawkを実行するとエラーとなってしまいました。。
どうやらMacのターミナル上のコマンドとLinuxのコマンドはだいたい同じように使えるが、微妙に違う部分もあるようで、awkがそれに該当するようでした。
またawkと同じくよく使うコマンドに「sed」も微妙に違いがあるようでした。
Macのターミナル上でLinuxと同じ「awk」と「sed」を使うには、「gawk」「gsed」をインストールすればよいようです。
brew install gawk
brew install gnu-sed
知っている人からすれば当然なのかもしれませんが、awk/sedがMacとLinuxで少し違うことを知らずかなりハマりました。。
参考したサイトは以下です。