Tôi có một tập dữ liệu với 20 000 đầu dò, chúng có hai cột, mỗi 21 cột. Từ tập tin này tôi cần trích xuất các dòng trong đó nucleotide cuối cùng trong cột Probe1 khớp với nucleotide cuối cùng trong cột Probe 2. Cho đến nay tôi đã thử hàm AWK (substr), nhưng không nhận được kết quả mong đợi. Dưới đây là một liner tôi đã cố gắng:Làm thế nào để so sánh hai chuỗi trong một dòng
awk '{if (substr($2,21,1)==substr($4,21,1)){print $0}}'
Một lựa chọn khác sẽ được neo ký tự cuối cùng trong cột 2 và 4 (awk '$2~/[A-Z]$/
), nhưng tôi không thể tìm thấy một cách để phù hợp với đầu dò trong hai cột sử dụng regex. Tất cả các đề xuất và ý kiến sẽ được đánh giá rất nhiều.
Ví dụ về dữ liệu:
Probe 1 Probe 2
4736 GGAGGAAGAGGAGGCGGAGGA A GGAGGACGAGGAGGAGGAGGA
4737 GGAGGAAGAGGAGGGAGAGGG B GGAGGACGAGGAGGAGGAGGG
4738 GGAGGATTTGGCCGGAGAGGC C GGAGGAGGAGGAGGACGAGGT
4739 GGAGGAAGAGGAGGGGGAGGT D GGAGGACGAGGAGGAGGAGGC
4740 GGAGGAAGAGGAGGGGGAGGC E GGAGGAGGAGGACGAGGAGGC
đầu ra mong muốn:
4736 GGAGGAAGAGGAGGCGGAGGA A GGAGGACGAGGAGGAGGAGGA
4737 GGAGGAAGAGGAGGGAGAGGG B GGAGGACGAGGAGGAGGAGGG
4740 GGAGGAAGAGGAGGGGGAGGC E GGAGGAGGAGGACGAGGAGGC
Ví dụ 'awk' bạn đưa ra đã tạo ra kết quả mong muốn mà bạn đã mô tả. Bạn cần thêm gì nữa à? – janos
Nó hoạt động thực sự, xin lỗi vì nhầm lẫn. – Bio21