txt 파일의 열에서 특정 이름이 포함된 행을 삭제하는 방법

txt 파일의 열에서 특정 이름이 포함된 행을 삭제하는 방법

다음과 같이 탭으로 구분된 큰 텍스트 파일이 있습니다.

#CHR  POS  REF  ALT    EFC                         GOM
1    100   A    G     u_v(XXXXXX);i_v(XXXXXXX)     0
2    465   T    C     d_r(XXXXXX);i_r(XXXXXXXX)    1
9    600   T    G     d_i(XXXXXX);f_v(XXXXXXXX)    -

다음 줄을 삭제하고 싶습니다

(1) "EFC" 열의 내용에 "i_r" 또는 "u_v"("(XXXXXX)" 및 기타 내용 포함)가 포함되어 있습니다.

또는

(2) "GOM" 열의 값은 1입니다.

그렇다면 awk 또는 sed를 사용하여 원하는 파일을 얻는 방법은 무엇입니까?

답변1

awk로 직접 번역:

awk -F'\t' '!($5 ~ /i_r/ || $5 ~ /u_v/ || $6 == 1) { print; }' input
  1. 필드 구분 기호를 탭으로 설정\t
  2. 다음 조건이 충족되는 경우아니요진짜!( ... )
  3. 조건 1: 필드 5에 i_r또는이 포함됩니다.
  4. 조건 2: 필드 5에 u_v또는이 포함됩니다.
  5. 조건 3: 필드 6이 1이면
  6. print철사

기준과 일치하는 행은 인쇄되지 않습니다("삭제").

예제 출력:

#CHR    POS     REF     ALT     EFC     GOM
9       600     T       G       d_i(XXXXXX);f_v(XXXXXXXX)       -

관련 정보