2012-07-20 32 views
6

awk'da çok satırlı yorumların nasıl kullanılacağını bilmek isterim. Şu andan itibaren tek bir satırı yorumlamak için # kullanıyorum. Birisi bana bu konuda rehberlik edebilir. Teşekkür ederim.awk'de çok satırlı açıklama

+6

awk – NARKOZ

+0

'de çok satırlı bir yorum bulunmamaktadır. Ardından, kodu zarif – NandaKumar

+0

@ NandaKumar'ın "kodu zarif yapma" konusunda nasıl yapılacağıyla ilgili öneriler biraz geniş. Benim önerim kitap/referanslarda daha büyük AWK programlarına bir göz atmak ve size rehberlik etmek için kullanmak olacaktır. Bu bir http://www.amazon.com/The-AWK-Programming-Language-Alfred/dp/020107981X var ve bu http://www.amazon.com/sed-awk-Edition-Dale- alabilir Dougherty/dp/1565922255. Bu da umut verici görünüyor: http://www.amazon.com/Effective-awk-Programming-3rd-Edition/dp/0596000707. Diğerlerinin kodunu okumaktan çok şey öğrendim (sadece AWK ile değil). Ve aslında bunu her gün burada yapıyorum :) – Levon

cevap

10

AWK'da çok satırlı bir açıklama yok, ancak gerekiyorsa bunu yapabilirsiniz.

#!/usr/bin/awk -f 
0 { 
    You can use 
    0 to cause 
    a block to 
    not execute 
    or be parsed 
} 

{ 
    print $2, $1, $3 
    if (0) { 
     You can use if (0) 
     in a similar manner 
     inside a block 
    } 
    sum += $4 
} 

0 && /pattern/ { # prepend "0 &&" to other conditions to turn off a block 
    print 
} 

Bu ayıklama sırasında kod bölümleri yorum için çok satırlı bir yorum var edebilmek güzel: Burada en az GNU AWK (gawk) çalışan bir tekniktir. Kod yazılmasının sözdizimi hataları için ayrıştırılmayacağı garanti edilemeyeceğinden, bu tekniği mutlaka belgeler için kullanmam.

mawk'da da çalışıyor gibi görünüyor.

+2

Bu bilmek güzel ama "yorum", "yapma" gibi şeyler içeriyorsa çalışmaz. Diğer bir deyişle, "yorum" dilbilgisi için ayrıştırılmamıştır, ancak sözcüksel olarak doğru bir awk belirteci akışı olmalıdır. – lhf

+0

@lhf: Doğru, onun sınırlamaları var. Bu, belgelendirmek için kullanmam konusunda uyardığım nedenlerden biri (bunu belirtmemiş olmamıza rağmen). –