2010-06-29 17 views
14
bazı eski kod üzerinde çalışıyorum

-e sed ve bensed -E arasındaki fark

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

kullanmak için kullanılan bulundu ama şimdi

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

görünüyor denemek nedir Aynı şeyi yapmak mı, yoksa yapar mı? Ben biraz ben yapmış bir sebebi olarak hatırlamıyorum ama hatırlayamıyorum edemez yapıyor onlar -E sadece -e kadar duyu eter yapmaz bu konuda hiçbir şey yok gibi "sed adam" yardımcı olmuyor. Ben -e bir regex ile eşleşir sanmıştım

-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. 

... kaynak kodu itibaren

GNU sed version 4.2.1 

cevap

28

, -E sed BSD ile uyumluluk için belgelenmemiş bir seçenektir. BSD sed içinde

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

Ve manual dan

, -E genişletilmiş düzenli ifadeler desteklemek için kullanılır.