Site Overlay

MacターミナルのawkとLinuxのawkが微妙に違う件

こんにちは。最近ハマってしまったことを自分用のメモとして残しておきます。

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で少し違うことを知らずかなりハマりました。。

参考したサイトは以下です。

https://qiita.com/y-vectorfield/items/bb92067cfbf16514301a

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です