Com o FreeBSD sed
(como encontrado no macOS), você precisa:
sed -i '' 's/staging\.//g' ./*
Tentando remover uma string entre vários arquivos em um diretório com sed. A pasta contém uma grande quantidade de arquivos sql, todos com nomes de tabela que preciso remover. Por exemplo, um dos arquivos é assim:
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);
Eu preciso remover staging.
de todas as linhas. Eu tentei o seguinte do diretório onde os arquivos são:
sed -i 's/staging.//g' *
sed -i 's/staging\.//g' *
sed -i 's|staging.||g' *
Mas receba o seguinte:
sed: 1: "eav_attribute_set ...": unterminated substitute pattern
Isso removerá staging.
do seu arquivo.
cat ${yourfile} | sed 's/staging\.//g' > tmp && mv tmp ${yourfile}