Я хотел бы извлечь строки файла, в которых определенные столбцы имеют значение ‹0,05.
Например, если $2, $4 или $6 имеют значение ‹0,05, я хочу отправить эту строку в новый файл. Мне не нужны строки со значением> 0,05 в любом из этих столбцов.
cat File_1.txt
S_003 P_003 S_006 P_006 S_008 P_008
74.9 0.006 59.6 0.061 72.2 0.002
96.2 0.003 89.4 0.001 106.9 0.000
105.8 0.003 72.6 0.003 86.7 0.002
45.8 0.726 38.5 0.981 43.9 0.800
50.7 0.305 47.8 0.314 46.6 0.615
49.9 0.366 50.4 0.165 48.2 0.392
42.5 0.920 43.7 0.698 40.3 0.970
46.3 0.684 42.9 0.760 47.7 0.438
192.4 0.001 312.8 0.001 274.3 0.001
Я пробовал это с помощью awk, но это сработает только очень долго.
awk ' $2<=0.05' file_1.txt > file_2.txt
awk ' $4<=0.05' file_2.txt > file_3.txt
д., и добился желаемого результата
96.2 0.003 89.4 0.001 106.9 0.000
105.8 0.003 72.6 0.003 86.7 0.002
192.4 0.001 312.8 0.001 274.3 0.001
но мой файл 198 столбцов и 57000 строк
Я также безуспешно пытался объединить команды awk. он ищет только $2
awk ' $2<=0.05 || $4=<0.05' File_1.txt > File_2.txt
74.9 0.006 59.6 0.051 72.2 0.002
96.2 0.003 89.4 0.001 106.9 0.000
105.8 0.003 72.6 0.003 86.7 0.002
192.4 0.001 312.8 0.001 274.3 0.001
Я довольно новичок в этом и был бы признателен за любые советы о том, как добиться этого с помощью awk.
Спасибо
Сэм
I tried this using awk, but it would only work doing it a very long way
. Сколько времени нужно для выполнения вашей команды? - person   schedule 18.12.201274.9 0.006 59.6 0.061 72.2 0.002
не совпадает с этой строкой:74.9 0.006 59.6 0.051 72.2 0.002
- person Steve   schedule 18.12.2012