Gelen bu düzenleme
Stéphane Chazelas POSIXifies (tekrar) benim sedbir ekleyerek biçimlendirme -eXPression mola ve başka -eXPression deyimi. Şimdi, neden yorumlarda ona sorabilirim, sanırım, ama bu cevapta zaten 18 numaralı revizyon var ve öncekilerin neredeyse hepsi benzer freebies sayesinde zaten oldu (silinen yorumları görebiliyorsanız, Yani) . Ayrıca, bunu neden daha genel olarak yararlı olabilecek bir şekilde ifade etmeyi anlamaya yeterince yakın olduğumu düşünüyorum . İşte umuyoruz ...
Genelde toplam sed -expressions'ımı bire bir tutmayı tercih ederim , ama aynı zamanda spesifikasyona olabildiğince yakın olarak uymak için daha fazla tercihim var , özellikle de fark bir <space>ve a'dan fazla değilse -e. Ama neden yapmam gerektiğini anlamıyorsam bunu yapamam . İşte şu anki durumumun kısa bir özeti:
' -e 'mola portably bir vekâlet edebilirsedkomut\nbir de ewline molasedkomut satırı deyimi ... Ben neden kuşkusuz bulanık değilimbir
sed{işlevdeki kapanış ayracı}öncesinde\n, burada belirtildiği gibi bir ewline sonu olmalıdır :<right-brace>Bir önce yapılır<newline>ve önce veya sonra olabilir<blank>karakterler.
Bir
\newline molası benzer ... her türlü kullanımından takip gereklidira,b,c,i,r,t,w, veya:.
Ancak {fonksiyon }tanımının !operatör değil ile nasıl ilişkili olduğunu net bir şekilde anlamıyorum . Şartnamelerde olumsuzlama operatörü bulduğum tek söz:
- Bir işlevden önce bir veya daha fazla
!karakter olabilir, bu durumda adresler desen boşluğunu seçmezse işlev uygulanmalıdır.
Bu, !ima edilen {parantez kullanımı anlamına mı geliyor }? Hangi $!komutlar - aynı şekilde ' -e 'aralarla ayrılmalılar mı? Stéphane en son cevabımı POSIX hale getirdiğinde ele alınan bu muydu ?
Ben ya !olumsuzlama operatörü ya da bdüzenlemesinde ele aldığı ahır ifadesi olduğunu düşünüyorum - ya da muhtemelen her ikisi de aynı anda - ama bilmiyorum ve istemeliyim. Eğer durum bu ise , sadeceb çiftlik açıklamada, sonra ben inanıyorum bir dyerinde yapmak ve gereğini ortadan kaldıracak ' -e 'aradan, ama yerine bir üç kere hazarding önce belirli olurdu POSIXified cevabı. Yardım edebilir misin?
Sonuçta riske girdim , ama kesin olarak değil ...
:- o ay önce eve gittin. Ama ikinci sedkomutun neden benzer şekilde POSIXleştirildiğini tam olarak anlamıyorum .
sedçok net değil. Geçmişte birkaç kez açıklama istedim, ancak sonuç olarak güncellendiğini sanmıyorum. İyi bir test, yadigâr araç testini denemektir (orijinalinden türetilen ve POSIX spesifikasyonunun büyük ölçüde dayandığı Solaris olanı).
s///okursanız, ubstitution'ların a ile zincirlemeyi kabul etmelerini şart koşarsınız ; . yeni satırla sınırlandırılması gereken komutlar etrafında bulanıklaşır ve -ebu durumda nasıl durabilir - en azından benim için öyle. ama ben sedonları oldukça değiştirilebilir olsa yorumlamıyor bir yanılmak için ive henüz .
;bir satırsonu öncesine ihtiyacınız olmadığını bilmelisiniz - satırsonu iyi. Dürüstçe, olabilir olmadan -etamamen ve tüm ve sadece gibi dosyası yazmak #!/bin/sedbir satır üzerinde her komutuyla - ya da bunun yerine sahip ayrılmış tür sınırlayıcı gerektirmez olanlar ;. Olanlar do yeni satırları gerektiren genellikle keyfi girdi almak olanlardır - :gibi onlara bakın etiket isimleri ve komutları bveya tveya kapama }fonksiyonları veya buraya curlies rEAD ve wdosya adı args almak ayin. Hepsi portatif olarak takip edilmelidir \n.
b;n;:b,";n;:b"tarihsel ve POSIX seds denilen etikete dallıyorsunuz (ve GNU sed bu konuda değil).