Dışarıdaki tüm 'sed' doktorlarına:
Bir satırda eşleştirdiği normal ifadeyi çıkarmak için 'sed'i nasıl elde edebilirsiniz?
Başka bir deyişle, sadece sıralı ifadeye karşılık gelen dizgiyi, eşleşen satırdaki tüm eşleşmeyen karakterlerin elimden alınmasını istiyorum.
Aşağıdaki gibi geri referans özelliğini kullanmayı denedim
regular expression to be isolated
gets `inserted`
here
|
v
sed -n 's/.*\( \).*/\1/p
Bu gibi bazı ifadeler için çalışıyor
sed -n 's/.*\(CONFIG_[a-zA-Z0-9_]*\).*/\1/p
'CONFIG_ ....' (bazı '* .h' dosyalarında bulunur) ile başlayan tüm makro adlarını düzgün bir şekilde çıkartır ve hepsini satır satır basar
CONFIG_AT91_GPIO
CONFIG_DRIVER_AT91EMAC
.
.
CONFIG_USB_ATMEL
CONFIG_USB_OHCI_NEW
.
e.t.c.
AMA yukarıdaki gibi ayrılıyor
sed -n 's/.*\([0-9][0-9]*\).*/\1/p
Bu her zaman gibi tek basamak döndürür
7
9
.
.
6
gibi bitişik bir sayı alanı çıkarmak yerine.
8908078
89670890
.
.
.
23019
.
e.t.c.
Not: Bunun “sed” de nasıl elde edildiğine dair geri bildirime minnettar olurum. Bunu 'grep' ve 'awk' ile nasıl yapacağımı biliyorum. Sınırlı da olsa, 'sed' anlayışının içinde delikler olup olmadığını ve sahip olduğum 'sed' de bunu yapmanın bir yolu olup olmadığını öğrenmek istiyorum
. sadece göz ardı.