Ben sed
GNU 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 sed
s'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 sed
kaçış dizilerini yorumlamıyor ve GNU sed
yapıyor . sed
BSD'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 \n
ve \t
BSD tarafından kaçış dizileri olarak yorumlanmıyorsed
Şimdi soruma. BSD sed
kı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 sed
gibi 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?