특정 열에 "1"이 포함된 행 목록이 포함된 2개의 파일을 만들어야 합니다. 하나는 열 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'
열 5를 변경하려면 중괄호 안의 "3"을 4로 변경하기만 하면 됩니다.
답변2
알아 냈어!
awk -F ' ' '$4 + 0 ==1' branch_36.cf.stat_tree.txt > gDF1_trees.txt