我需要制作 2 个文件,其中包含某些列中包含“1”的行列表 - 一个文件用于第 4 列“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
您是否考虑过更改第四列?
sed -E 's/^(([^ ]* ){3})[^ ]* (.*$)/\11 \3/g'
只需将大括号内的“3”更改为4,即可更改第5列。
答案2
弄清楚了!
awk -F ' ' '$4 + 0 ==1' branch_36.cf.stat_tree.txt > gDF1_trees.txt