Tôi muốn kết hợp các giá trị từ nhiều dòng có độ dài khác nhau thành một dòng nếu chúng khớp với ID.Awk kết hợp nhiều dòng có điều kiện
dụ Input là:
ID: Value:
a-1 49
a-2 75
b-1 120
b-2 150
b-3 211
c-1 289
d-1 301
d-2 322
mong muốn ví dụ đầu ra là:
ID: Value:
a 49,75
b 120,150,211
c 289
d 301,322
Làm thế nào tôi sẽ viết một biểu thức awk (hoặc sed hay grep hoặc một cái gì đó) để kiểm tra xem các ID phù hợp, và sau đó in tất cả các giá trị đó vào một dòng? Tôi có thể tất nhiên chỉ cần in chúng vào các cột khác nhau và kết hợp chúng sau này, do đó, thực sự vấn đề chỉ là điều kiện in ấn nếu ID phù hợp và nếu không bắt đầu một dòng mới.
Dòng phần tử 'ID: Value: 'của đầu vào? Bạn có luôn luôn có một '-' sau ID không? Có một không gian duy nhất, hoặc hai, trong đầu vào? –
jfg956
Có đảm bảo rằng tất cả các dòng 'a' sẽ được nhóm lại không? Tôi có nghĩa là, nó có thể là một 'a'-line, sau đó một' b'-line và sau đó một 'a'-line, ví dụ? – brandizzi
Tôi có thể nhóm chúng dễ dàng - dữ liệu thực tế có dạng số có 6 chữ số, tức là 000000-1 000005-1 000005-2 000010-1 000010-2 000010-3 tôi có thể lấy tiêu đề ra và lại thêm nó (mà tôi sẽ làm anyway kể từ khi tôi đang làm lại cột) và dữ liệu được phân tách bằng dấu cách, nhưng có thể dễ dàng thay đổi theo số Cảm ơn –