2017-10-13 7 views
0

ヘッダー行を無視して、特定の列の値に基づいてファイルをフィルタリングしようとしています。〜60フィールドと> 1500エントリのファイルをフィルタリングするためのawk

コマンドは、私が試した:私はこれを実行すると

awk '(NR = 1) || \ 
    (($7>=0.8) && ($13>-0.8) && ($19>=0.8) && \ 
     ($25>=0.8) && ($31>=0.8) && ($37>=0.8) && \ 
     ($39=3) && ($40=3))' infile.txt > outfile.txt 

は、結果のOutfile.txtを私がinfile.txt中で値が存在することを確認しているにもかかわらず、正確にinfile.txtと同じですカラム7,13,19,25,31および37は0.8より低く、同様にカラム39および40の値は3より小さい。

誰も私に解決策を教えてくれませんか?

ありがとうございます!

はADIP

てきたが、ここに私のいずれかのファイルの最初の数行でinfile.txt例が含まれていました。

https://drive.google.com/file/d/0B8LuZenMuFYGekZwd1dpcks2Tkk/view?usp=sharing

+0

infile.txtの小さな部分を追加できますか? –

+1

入力を見ることなく、最初の部分を 'NR == 1'に変更します。 –

+1

Ooh。 '$ 39 = 3 &&($ 40 = 3)'を '$ 39 == 3 && $ 40 == 3'に変更してください。 –

答えて

2

はビーイングが答えるにコメントを変換するために圧力をかけました。 NR==1 と 変更($39=3) && ($40=3)

$39==3 && $40==3から

手取りメッセージに 変更NR = 1:あなたのawkで行われたミスは、おそらくあなたの問題を解決します;-)

つ割り当て=との比較に差があります==

関連する問題