Ben sedGNU yanı sıra BSD ile uyumlu olmasını istiyorum bir sed değiştirme komutu var sed. Genişletilmiş düzenli ifadeler bu durumda onlara ihtiyaç duymadığım için sorun değil. Birincil sorunum, iki seds'nin değiştirme dizelerindeki karakter kaçış dizilerini yorumlama biçimindeki farktır . Yedek dizem sekmeler ve yeni satırlar içeriyor ve bakım kolaylığı için komut dizelerinde görünmelerini istiyorum, ancak BSD sedkaçış dizilerini yorumlamıyor ve GNU sed yapıyor . sedBSD'deki bu kaçış dizilerini yorumlamayı öğretmenin uygun yolu nedir ? Aşağıdaki iki parçacık sorunumu özetler:
GNU sed
echo ABC | sed 's/B/\n\tB\n'
yeilds
A
B
C
BSD sed
echo ABC | sed 's/B\n\tB\n'
verim
AntBnC
Açıkça görülüyor \nve \tBSD tarafından kaçış dizileri olarak yorumlanmıyorsed
Şimdi soruma. BSD sedkılavuzuna göre :
Yeni dizede yeni satır karakteri belirtmek için, karakterden önce ters eğik çizgi kullanın.
Bu, gerçek bir satırsonundan önce ters eğik çizgi kullanmam gerektiğini mi ima ediyor ? Değiştirme metninde olduğu sedgibi kaçış dizilerini yorumlamayı öğretmenin uygun yolu nedir \n?
sed. Sonunda awk kullanmak muhtemelen mantıklı olacaktır. Öyleyse alıntıladığım BSD sed manpage'in yorumu hakkında ne düşünüyorsunuz?