Tôi có một tập lệnh s1
xuất ra danh sách các số được phân tách bằng ',' ví dụ 1,2,3,4
. Bây giờ tôi muốn đưa các số này vào tập lệnh s2
dưới dạng đối số, để s2 sẽ được chạy trên mỗi số đó và đưa ra kết quả của nó trong một dòng riêng biệt. Ví dụ: nếu s2 nhân số nhân với hai, đây sẽ là kết quả tôi đang tìm kiếm:
2
4
6
8
Những gì tôi đang làm bây giờ là:
s1 | xargs -d "," | xargs -n1 s2
Nhưng tôi cảm thấy như mình đang làm điều đó một cách ngu ngốc! Vì vậy, câu hỏi của tôi là:
Cách thích hợp để làm điều đó là gì?
Vấn đề của tôi với giải pháp của tôi là nó gọi xargs hai lần và lặp lại hai lần đầu vào, điều này không hợp lý với mắt tôi tất nhiên là bằng hiệu suất! Câu trả lời xargs -d "," -n1
có vẻ hay, nhưng tôi không chắc nếu nó chỉ lặp lại một lần. Nếu có, vui lòng xác minh rằng trong câu trả lời của bạn và tôi sẽ chấp nhận nó. Nhân tiện, tôi không muốn sử dụng Perl vì nó vẫn lặp lại hai lần và Perl có thể không tồn tại trên nhiều hệ thống.
s1 | xargs -d "," -n1 s2