特定の列の値が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を使用してこれを実現する方法についてアドバイスをいただければ幸いです。
ありがとう
サム