получить все строки, имеющие значение столбца больше или равное определенному значению

Для Европы/Копенгагена :Универсальное время UTC, а не CET и CEST. Это да

2
13.05.2020, 13:23
3 ответа
#!/usr/bin/env bash
while IFS= read -r i; do
    awk -F'\t' 'NR==1 || $6>=0.01' "$i" > "${i}_ctdna_freq.txt"
done < <(find. -name 'BC_4_*_*shift.txt')

или:

#!/usr/bin/env bash
find. -name 'BC_4_*_*shift.txt' |
xargs -n 1 -I {} awk -F'\t' 'NR==1 || $6>=0.01' "{}" > "{}_ctdna_freq.txt"

Не делайте for i in..., см. https://mywiki.wooledge.org/BashFAQ/001, и всегда указывайте переменные в кавычках, см.https://mywiki.wooledge.org/Quotes. Запускайте все свои сценарии оболочки через http://shellcheck.net, пока не освоите основы.

2
28.04.2021, 23:14

Я поместил ваши данные в файл, известный какdata1.txt

Точно так же я внес изменения вручную и создал множество файлов.

Этот код делает то, что вы хотите во всем. Но выводит в один файл.

find. -name "data*.txt" -type f -exec awk 'NR==1 || $6>=0.01' {} + >>output.txt

0
28.04.2021, 23:14

команда

awk '$6 >= 0.01' file.txt

выход

chr     pos         ref var p.val       freq.var
chr19   9074573     A   C   6.73E-22    0.586593469
chr19   9091288     G   T   5.96E-188   0.508732726
chr12   56490398    G   T   0.005271732 0.010003218
chr12   56477619    G   A   1.40E-15    0.010001069
chr12   56477619    G   A   1.40E-15    0.010001069
chr3    52677261    C   T   5.13E-06    0.01
chr5    67591010    A   G   4.82E-23    0.01

Питон

#!/usr/bin/python

k=open('file.txt','r')
k.readline()
print ("chr     pos         ref var p.val       freq.var")
for i in k:
    q=i.split(' ')[-1]
    if (float(q) >= 0.01):
        print (i.strip())



output

chr     pos         ref var p.val       freq.var
chr19   9074573     A   C   6.73E-22    0.586593469
chr19   9091288     G   T   5.96E-188   0.508732726
chr12   56490398    G   T   0.005271732 0.010003218
chr12   56477619    G   A   1.40E-15    0.010001069
chr12   56477619    G   A   1.40E-15    0.010001069
chr3    52677261    C   T   5.13E-06    0.01
chr5    67591010    A   G   4.82E-23    0.01
0
28.04.2021, 23:14

Теги

Похожие вопросы