Tôi đang cố gắng chạy lệnh shell từ bên trong awk cho mỗi dòng của một tập tin, và lệnh shell cần một đối số đầu vào. Tôi đã cố gắng sử dụng system()
, nhưng nó không nhận ra đối số đầu vào.Làm cách nào để chuyển các biến từ awk sang lệnh shell?
Mỗi dòng của tệp này là địa chỉ của tệp và tôi muốn chạy một lệnh để xử lý tệp đó. Vì vậy, cho một ví dụ đơn giản, tôi muốn sử dụng lệnh 'wc' cho mỗi dòng và vượt qua $1
đến wc.
awk '{system("wc $1")}' myfile
Tìm kiếm trong SO trước tiên, đã có hàng trăm giải pháp. – BMW
Tại sao bạn nghĩ awk là công cụ thích hợp cho công việc này? Nó có vẻ như 'xargs' hoặc một shell đơn giản' trong khi read line' loop sẽ tốt hơn và dễ dàng hơn. –
Mặt khác: Tại sao bạn nghĩ wc là công cụ thích hợp cho công việc này? Có vẻ như các biến và hàm dựng sẵn awk sẽ tốt hơn và dễ dàng hơn? –