2011-05-03 17 views
28

Bazı yapılandırma dosyaları oluşturmak için kabuk komut dosyası yazıyorum.Süzgeçler, sed değiştirgesinde kullanın

Ayrıca dosyalardaki bazı kalıpları değiştirmek zorundayım ve bir desen bir yolla değiştirilmelidir.

Benim sorum şu ki: Yer tutucu web yolumu, eğik çizgileri önünde ters eğik çizgi koymadan bir yolla değiştirmenin bir yolu var mı?

Belki bunu yapmak için başka bir araç var mı?

sed '\,some/path,d' 

Ve s komut için olduğu gibi sadece kullanmak:

cevap

46

Bunu backslashing bir arama deseni olarak alternatif bir düzenli ifade ayırıcı kullanabilirsiniz

sed 's,some/path,other/path,' 

Muhtemelen diğer korumak istiyorum metakarakterler olsa da; Bu, Perl ve quotemeta'u veya diğer betik dillerindeki eşleri kullanmak için iyi bir yerdir. man sed itibaren

: düzenli ifade regexp eşleşen

/regexp/
Maç hatları. düzenli ifade regexp eşleşen

\cregexpc
Maç hatları. c, ters eğik çizgi veya satırsonundan başka herhangi bir karakter olabilir. Şablon boşluğundaki normal ifadenin ilk örneği için değiştirme dizesini değiştirin. Ters eğik çizgi veya satır sonu dışındaki herhangi bir karakter, RE ve değiştirmeyi sınırlamak için eğik çizgi yerine kullanılabilir. RE ve yerine, RE sınırlayıcı, bir ters eğik çizgi ile öncelerse, bir harfli karakter olarak kullanılabilir.