sedはFreeBSDとLinuxで異なる動作をしますか?

sedはFreeBSDとLinuxで異なる動作をしますか?

私はLinuxとFreeBSDの両方を使用しています(特にDebian LinuxとPC-BSDを使用しています)sed

「タブ区切り値」ファイルを「カンマ区切り値」に変換する必要があることがよくあります。私が知っている最も簡単な方法は、sed次のようにを使用することです。

sed 's/\t/,/g' inputFile.txt > outputFile.csv

これはLinuxで完全に動作します。すべてのタブをカンマで置き換えますが、FreeBSDでは何も置き換えません!

私は何を逃したことがありませんか? FreeBSDの構文はsedLinuxの構文と異なりますか?

ベストアンサー1

おそらくそのオプションを使用する必要があります-E(または-r説明されているように)。マニュアルに)GNU Sedとの互換性を維持するため。あなたの場合は、Gnu Sed(ポートゲザールFreeBSDでは)そうでなければ、スクリプトを移植するのに時間がかかります。

覚えておいてください。 BSDの一部のコマンドがユーティリティのGNUバージョンとは異なる動作をしているため、そのコマンドが破損しているわけではありません。

おすすめ記事