sed를 사용하여 디렉터리의 여러 파일에서 문자열을 삭제해 보세요. 폴더에는 삭제해야 하는 테이블 이름이 포함된 많은 SQL 파일이 포함되어 있습니다. 예를 들어 파일 중 하나는 다음과 같습니다.
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' ./*
답변2
이 내용은 staging.
파일에서 제거됩니다.
cat ${yourfile} | sed 's/staging\.//g' > tmp && mv tmp ${yourfile}