
特定の列に「1」を含む行のリストを含む2つのファイルを作成する必要があります。 1 つは列 4 "1" のファイルで、もう 1 つは列 5 "1" のファイルです。元のファイルは次のとおりです。
ID TreeID gC gD1 gD2.
36 1 0 0 0
36 2 1 0 0
36 3 1 0 0
36 4 1 0 0
36 5 1 0 0
36 6 0 0 1
36 7 1 0 0
36 8 1 0 0
36 9 1 0 0
36 10 1 0 0
36 11 1 0 0
私は次のことを考えています:
awk '$4%1' branch_36.cf.stat_tree.txt > gDF1_trees.txt
しかし、私はそれを動作させることはできません。私の出力は次のとおりです。
36 18 0 0 1
36 45 0 0 1
36 50 0 0 1
36 79 0 0 1
とgDF2_trees.txt
:
36 22 0 1 0
36 101 0 1 0
36 507 0 1 0
36 632 0 1 0
のためのgDF1_trees.txt
。
答え1
4列目の変更を考えてみましたか?
sed -E 's/^(([^ ]* ){3})[^ ]* (.*$)/\11 \3/g'
列5を変更するには、中かっこ内の「3」を4に変更するだけです。
答え2
気づいた!
awk -F ' ' '$4 + 0 ==1' branch_36.cf.stat_tree.txt > gDF1_trees.txt