2012-07-20 31 views
6

Tôi muốn biết cách sử dụng nhận xét nhiều dòng trong awk. Hiện tại tôi đã sử dụng # để bình luận một dòng. Ai đó có thể hướng dẫn tôi về điều này. Cảm ơn bạn.Nhận xét nhiều dòng trong awk

+6

không có nhận xét nhiều dòng trong awk – NARKOZ

+0

Sau đó, bất kỳ đề xuất nào về cách tạo mã thanh lịch – NandaKumar

+0

@NandaKumar "làm cho mã thanh lịch" có phần mở rộng. Đề xuất của tôi sẽ là xem xét một số chương trình AWK lớn hơn trong sách/tài liệu tham khảo và sử dụng các chương trình đó để hướng dẫn bạn. Tôi có cái này http://www.amazon.com/The-AWK-Programming-Language-Alfred/dp/020107981X và có thể nhận được http://www.amazon.com/sed-awk-Edition-Dale- Dougherty/dp/1565922255. Điều này có vẻ đầy hứa hẹn: http://www.amazon.com/Effective-awk-Programming-3rd-Edition/dp/0596000707. Tôi đã học được rất nhiều từ việc nghiên cứu mã của người khác (không chỉ với AWK). Và trong thực tế, tôi làm điều đó mỗi ngày ở đây trên SO :) – Levon

Trả lời

10

Không có nhận xét nhiều dòng trong AWK, nhưng bạn có thể giả mạo nó nếu cần. Dưới đây là một kỹ thuật mà làm việc ít nhất là trong GNU AWK (gawk):

#!/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 
} 

Thật tuyệt khi có thể có ý kiến ​​multiline cho ý kiến ​​ra các phần của mã trong gỡ lỗi. Tôi sẽ không nhất thiết phải sử dụng kỹ thuật này cho tài liệu vì nó có thể không được đảm bảo rằng văn bản không mã sẽ không được phân tích cú pháp cho các lỗi cú pháp.

Dường như cũng hoạt động ở mawk.

+2

Điều này là tốt đẹp để biết nhưng nó không hoạt động nếu "bình luận" chứa những thứ như 'không'. Nói cách khác, "bình luận" không được phân tích cú pháp cho ngữ pháp nhưng nó phải là một dòng mã thông báo chính xác. – lhf

+0

@lhf: Đúng, nó có những hạn chế của nó. Đó là một trong những lý do tôi cảnh báo chống lại việc sử dụng nó cho tài liệu (mặc dù tôi đã không nói nó). –

Các vấn đề liên quan