Interaction_ID, PDB_ID, First_Residue, First_Chain, Second_Residue, Third_Residue, Third_Chain 및 Pattern 헤더가 포함된 csv 파일이 있습니다.
AM_AUTO_1,1cx0,A166,B,C118,B,G129,B,A-minor Type I ACG
AM_AUTO_2,1cx0,A165,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_3,1cx0,A166,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_4,1ddy,A25,A,C21,A,G8,A,A-minor Type I ACG
AM_AUTO_5,1e7k,A33,C,C28,C,G45,C,A-minor Type 0 AGC
AM_AUTO_6,1e7k,A33,D,C28,D,G45,D,A-minor Type 0 AAU
내가 원하는 것은 csv 파일에서 Pattern = %Type 0% 행을 삭제한 다음 결과 csv 파일을 인쇄하는 것입니다. 결과는 다음과 같아야 합니다.
AM_AUTO_1,1cx0,A166,B,C118,B,G129,B,A-minor Type I ACG
AM_AUTO_2,1cx0,A165,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_3,1cx0,A166,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_4,1ddy,A25,A,C21,A,G8,A,A-minor Type I ACG
이 작업을 수행하려면 어떻게 awk를 사용합니까?
답변1
를 사용하면 awk
다음을 수행할 수 있습니다.
$ awk '$(NF-1)!=0' file
AM_AUTO_1,1cx0,A166,B,C118,B,G129,B,A-minor Type I ACG
AM_AUTO_2,1cx0,A165,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_3,1cx0,A166,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_4,1ddy,A25,A,C21,A,G8,A,A-minor Type I ACG
또는 다음을 사용하십시오 grep
.
grep -v 'Type 0' file
답변2
사용 awk
:
awk -F, '$9!~/Type 0/{print $0}' file
AM_AUTO_1,1cx0,A166,B,C118,B,G129,B,A-minor Type I ACG
AM_AUTO_2,1cx0,A165,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_3,1cx0,A166,B,C119,B,G128,B,A-minor Type II ACG
AM_AUTO_4,1ddy,A25,A,C21,A,G8,A,A-minor Type I ACG
설명하다:
이로 인해 ( )가 구분 기호로 awk
사용 됩니다 . 9번째 필드에 "유형 0"( )이 포함되어 있지 않으면 해당 행( )을 인쇄합니다.,
-F,
$9!~/Type 0/
{print $0}
해결책은 다음 과 같습니다 sed
.
sed '/,[^,]*Type 0[^,]*$/d' file