검색 및 대체를 위해sed를 사용하는 것은 개인적인 선호도입니다. 왜냐하면 웹 링크와 같이 "/"를 포함한 항목을 대체할 때 원하는 구분자를 사용할 수 있기 때문입니다. sed를 사용한 인라인 편집의 기본 예시는 다음과 같습니다:
sed -i 's/search_for/replace_with/g' /path/filename
그러나 "/"가 포함된 문자열을 검색해야하는 경우 어떻게 해야 할까요? 만약 슬래시(/)가 구분자로 유일한 옵션이라면 검색에 사용하기 전에 각각의 슬래시를 이스케이프해야 합니다. 여기서 sed가 다른 도구보다 우수한 이유입니다. 왜냐하면 구분자를 변경할 수 있기 때문에 구분자를 어디에서나 지정할 필요가 없습니다. 앞서 언급한 것처럼 "/"를 포함한 항목을 찾으려면 구분자를 "|"로 변경하면 됩니다. 다음은 이 방법을 사용하여 링크를 찾는 예시입니다:
sed -i 's|search_for/with_slash|replace_string|g' /path/filename
구분자로는 백슬래시, 개행 문자, "s"를 제외한 임의의 한 바이트 문자를 사용할 수 있습니다. 예를 들어 다음과 같이도 작동합니다:
sed -i 'sasearch_forawith_slashareplace_stringag' /path/filename 기서 "a"는 구분자이며, 검색과 대체는 여전히 작동합니다. 안전을 위해 검색 및 대체 시 백업을 지정할 수 있으며, 이는 sed를 사용하여 수행하는 변경 사항이 실제로 원하는 대로인지 확인하는 데 유용합니다. 이렇게 하면 백업 파일에서 복원 옵션이 제공됩니다: sed -i.bak s|search_for|replacea_with|g /path/filename
sed -i.bak s|search_for|replacea_with|g /path/filename
이 명령은 filename을 filename.bak으로 백업된 편집되지 않은 버전을 생성합니다.
따옴표 대신 큰 따옴표를 사용할 수도 있습니다:
sed -i "s|search_for/with_slash|replace_string|g" /path/filename