Mac OSX sed - 複数のファイルからドットを含む文字列を削除する

Mac OSX sed - 複数のファイルからドットを含む文字列を削除する

sedを使用して、ディレクトリ内の複数のファイルから文字列を削除してみてください。フォルダには、削除する必要があるテーブル名を含む多くのSQLファイルが含まれています。たとえば、ファイルの1つは次のとおりです。

INSERT INTO staging.eav_attribute_set (attribute_set_id, entity_type_id, attribute_set_name, sort_order) VALUES (1, 1, 'Default', 2);
INSERT INTO staging.eav_attribute_set (attribute_set_id, entity_type_id, attribute_set_name, sort_order) VALUES (2, 2, 'Default', 2);
INSERT INTO staging.eav_attribute_set (attribute_set_id, entity_type_id, attribute_set_name, sort_order) VALUES (3, 3, 'Default', 1);
INSERT INTO staging.eav_attribute_set (attribute_set_id, entity_type_id, attribute_set_name, sort_order) VALUES (4, 4, 'Default', 1);

staging.すべての行を削除する必要があります。ファイルがあるディレクトリで次のことを試みました。

sed -i 's/staging.//g' *
sed -i 's/staging\.//g' *
sed -i 's|staging.||g' *

ところで、次のようなメッセージを受け取りました。

sed: 1: "eav_attribute_set ...": unterminated substitute pattern

ベストアンサー1

FreeBSD sed(macOS上)を使用するには、次のものが必要です。

sed -i '' 's/staging\.//g' ./*

おすすめ記事