Мне нужно захватить 9-ю строку всех файлов, присутствующих в каталоге, и сформировать матрицу. Таким образом, окончательный файл матрицы результатов должен иметь последний столбец (9) из каждого в этом каталоге. Я пытался использовать эту команду awk ниже, но кажется, что число строк для каждого столбца фиксируется. Но каждый столбец должен иметь разную длину строки.Как этот элемент операции awk можно изменить, если файлы в каталоге имеют разную длину?
Как я могу это выполнить?
Так я создаю для файлов, каждый из которых имеет разную длину строк в каждом файле
test1
chr9 9335447 9336484 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56667 965 . 6.77363 99.72431 96.55273
chr9 25458602 25460996 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56963 965 . 8.69480 99.62462 96.50636
chr9 8951218 8952614 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56664 924 . 7.08373 95.87063 92.42281
chr9 25488217 25488493 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56969 924 . 7.26997 95.93935 92.40503
chr9 21767169 21767424 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56851 917 . 7.09383 95.08205 91.76054
chr9 25462036 25463421 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56964 913 . 8.10742 94.20728 91.34667
chr9 23376300 23376656 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56879 909 . 7.68991 95.23603 90.97657
chr9 6248051 6249845 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56643 902 . 7.23016 93.55791 90.20087
chr9 4361536 4366373 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_56640 901 . 7.10611 93.39889 90.18221
chr10 82292632 82292885 /data/GT/polycomb_project/macs2.1_out/52_macs2.1_out_peak_7864 99 . 4.77657 11.76769 9.98589
test2
chr9 20992529 20993162 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_44714 99 . 1.81800 11.61118 9.99610
chr10 10150857 10152503 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_2529 99 . 5.72519 11.92312 9.99364
chr6 99944290 99968054 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_37835 99 . 5.14794 11.83886 9.99173
chr9 21676437 21677033 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_44723 99 . 2.08915 11.74377 9.98114
chr15 54971489 54971789 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_15937 99 . 4.81810 12.49836 9.97776
chr12 82402758 82403588 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_11103 99 . 5.50341 12.17826 9.97621
chr10 10027428 10028675 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_2523 99 . 5.27050 11.61293 9.97230
chr5 121116263 121117610 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_34950 99 . 5.77439 11.93674 9.96821
chr6 85524028 85524890 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_37188 99 . 5.96862 12.05430 9.96497
chr3 35946879 35947188 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_28382 99 . 6.24135 12.21292 9.96319
chr15 97759104 97761134 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_17206 99 . 5.14599 11.60535 9.95046
chr10 82999870 83001905 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_4560 99 . 5.13890 11.74480 9.94890
chr6 89132010 89133523 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_37413 99 . 5.07187 11.44838 9.94713
chr10 41146219 41147420 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_3185 99 . 5.69149 12.04643 9.94077
chr16 23430991 23431625 /data/GT/polycomb_project/macs2.1_out/PT4_macs2.1_out_peak_18080 99 . 5.69959 11.88507 9.93962
test3
chr10 79678402 79678978 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_4211 99 . 5.12172 12.22297 9.99310
chr6 91782996 91785061 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_35775 99 . 5.44415 11.81448 9.99213
chr6 87337478 87340150 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_35453 99 . 5.63817 11.98290 9.99051
chr1 53794676 53795323 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_257 99 . 6.10605 12.20900 9.98874
chr11 5986806 5987478 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_5727 99 . 6.43022 12.47342 9.97663
chr6 121282251 121282898 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_36549 99 . 5.21404 12.05700 9.96515
chr10 75631023 75636021 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_4005 99 . 5.22504 11.71938 9.95342
chr18 66115872 66117662 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_21569 99 . 5.24544 11.71402 9.95194
chr19 44632939 44635029 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_23305 99 . 4.50809 11.79674 9.94865
chr4 14764961 14765707 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_29038 99 . 5.76862 11.99986 9.94749
chr5 141067881 141068891 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_33753 99 . 4.88940 11.44856 9.93749
chr10 70650648 70650887 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_3871 99 . 3.28463 11.70058 9.91189
chr6 85478303 85479428 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_35363 99 . 5.67223 11.88624 9.90526
chr5 24227460 24228790 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_31250 99 . 5.34013 11.81155 9.90311
chr6 87217355 87217671 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_35445 98 . 4.94135 11.84741 9.89441
chr19 56822146 56823187 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_23618 98 . 4.19924 11.60634 9.89441
chr5 34353383 34353813 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_31669 98 . 5.41412 11.69552 9.89124
chr8 128343980 128344400 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_42552 98 . 5.88042 12.31357 9.88999
chr7 120101715 120103357 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_39838 98 . 5.04756 11.80500 9.88873
chr13 32095516 32096121 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_11938 98 . 5.58792 11.86071 9.88852
test4
chr10 79678402 79678978 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_4211 99 . 5.12172 12.22297 9.99310
chr6 91782996 91785061 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_35775 99 . 5.44415 11.81448 9.99213
chr6 87337478 87340150 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_35453 99 . 5.63817 11.98290 9.99051
chr1 53794676 53795323 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_257 99 . 6.10605 12.20900 9.98874
chr11 5986806 5987478 /data/GT/polycomb_project/macs2.1_out/PT1_macs2.1_out_peak_5727 99 . 6.43022 12.47342 9.97663
команда, которую я использовал
awk -v OFS='\t' '{ a[FNR] = (a[FNR] ? a[FNR] FS : "") $9 } END { for(i=1;i<=FNR;i++) print a[i] }' $(ls test*) > test_out.txt
выход я получил из приведенного выше фрагмента кода, но это не желательно
96.55273 9.99610 9.99310 9.99310
96.50636 9.99364 9.99213 9.99213
92.42281 9.99173 9.99051 9.99051
92.40503 9.98114 9.98874 9.98874
91.76054 9.97776 9.97663 9.97663
Я ожидал, что выход должен иметь разные строки в соответствии с длина строки каждого из файлов файлов.
Можете ли вы показать мы примеры с несколькими строками каждый, скажем, в трех входных файлах вместе с вашим желаемым выходом? – jas
@fedorqui, я не думаю, что OP пытается проанализировать вывод 'ls' ---, но используя его с' -v', чтобы перечислить файлы, которые будут обрабатываться awk в желаемом порядке. – jas
@jas хорошая точка, вы правы! – fedorqui