"-i"オプションで "sed"を使用すると、入力ファイルは変更されずに奇妙な名前の新しいファイルが生成されます。

私は次のコマンドを持っています:

sed -i 's/^CREATE DATABASE.*$//' world.sql

実行すると、次のように表示されます。

sed: -I or -i may not be used with stdin

そして、.という名前の新しいファイルを作成しますorld.sql。元のファイルは引き続き存在します。

それで、私は命令をsed見ていますか?この動作を防ぐにはどうすればよいですか?world.sqlw orld.sql

[これはmacOSです。 ]

ベストアンサー1

私の知る限り、sedMacOSにはFreeBSDバージョンがありますが、必要このオプションを使用するときに提供するバックアップサフィックスです-i。表示されるエラーメッセージは、オプションを指定せずにオプションを使用したため、コマンドの一部を誤って解釈したことを意味します。

だから一度試してください。

sed -i".backup" 's/^CREATE DATABASE.*$//' world.sql

world.sql.backupこれにより内部編集が作成され、実行されますworld.sql

一部 sedバージョンでは、空のバックアップサフィックスを受け入れることができます。たとえば、sed -i ''これによりバックアップファイルは作成されませんが、使用している特定のバージョンのドキュメントを確認する必要があります。バラより

より多くの洞察を得るために

おすすめ記事