Mac OSX sed - 여러 파일에서 점이 포함된 문자열 제거

Mac OSX sed - 여러 파일에서 점이 포함된 문자열 제거

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}

관련 정보