2010-06-29 10 views
14
나는 오래된 코드에서 일하고 있어요

-e 나오지도 그리고 내가나오지 -E 사이의 차이는

sed -E 's/findText/replaceWith/g' #findText would contain a regex 

을 사용하는 데 사용되는 것을 발견하지만 난 지금

sed -e 's/findText/replaceWith/g' 

그것은 보인다 시도 뭐죠 같은 일을하거나, 그렇지 않습니까? 나는 그것을 한 이유가 있음을 기억하지만 나는 기억할 수 없다. 그리고 "man sed"는 도움이되지 않는다. 내가 -e는이 정규식과 일치하는 것입니다 의미 생각

-e, --expression=script 
    Append the editing commands in script to the end of 
    the editing command script. script may contain more 
    than one newline separated command. 

... 소스 코드에서

GNU sed version 4.2.1 

답변

28

, -E은 나오지 BSD와의 호환성을 위해 문서화되지 않은 옵션입니다. BSD 나오지에서

/* Undocumented, for compatibility with BSD sed. */ 
case 'E': 
case 'r': 
    if (extended_regexp_flags) 
    usage(4); 
    extended_regexp_flags = REG_EXTENDED; 
    break; 

그리고 manual에서

, -E는 확장 된 정규 표현식을 지원하는 데 사용됩니다.