Tôi có một lớp lót đơn giản mà gấp dòng tiếp theo vào dòng hiện tại khi một mẫu đã cho phù hợp. Ở đây là:Hiệu ứng có một số dấu có trên phần thân của tập lệnh awk?
awk '/two/ { printf $1; next; } 1' test.txt
với đầu vào sau:
one
two
three
four
five
six
one
two
three
four
bạn nhận được:
one
twothree
four
five
six
one
twothree
four
Lưu ý rằng "ba" được gấp lại với "hai", đó là những gì Tôi muốn xảy ra. Tôi tìm thấy giải pháp này (không nhớ ở đâu) và nghĩ rằng nó kỳ lạ rằng dấu '1' dường như là phần còn thiếu dẫn đến hiệu quả mong muốn. Nếu bạn lấy nó ra, bạn nhận được:
awk '/two/ { printf $1; next; }' test.txt
twotwo
Kết quả là. Vì vậy, câu hỏi của tôi là, dấu "1" làm gì, và nó được ghi chép ở đâu?
Cảm ơn!
Ah! Cảm ơn các liên kết. Rất hữu ích. – drsnyder