특정 패턴을 따르는 행만 유지

특정 패턴을 따르는 행만 유지

550만 줄이 포함된 파일이 있습니다.

예:

chr1    10000   10468   +   (TAACCC)n   Simple_repeat   Simple_repeat
chr1    10468   11447   -   TAR1    Satellite   telo
chr1    11504   11675   -   L1MC5a  LINE    L1
chr1    11677   11780   -   MER5B   DNA hAT-Charlie
chr10_GL383545v1_alt    11877   11980   -   Alu ERV1
chr11_BL383595v1_alt    12077   12980   -   Alu ERV1
chr3    11504   11675   -   L1MC5a  LINE    L1

_첫 번째 열에 없는 행만 유지하고 싶습니다.

출력은 다음과 유사합니다.

chr1    10000   10468   +   (TAACCC)n   Simple_repeat   Simple_repeat
chr1    10468   11447   -   TAR1    Satellite   telo
chr1    11504   11675   -   L1MC5a  LINE    L1
chr1    11677   11780   -   MER5B   DNA hAT-Charlie
chr3    11504   11675   -   L1MC5a  LINE    L1

원하지 않는 행이 얼마나 많이 존재하는지 모르겠습니다. 나는 을 사용하는 것을 선호 awk하지만 일반 bash 명령도 작동합니다.

답변1

awk컬럼 처리에 가장 적합

awk '$1 !~ /_/' file

!~패턴과 일치하지 않는 항목이 있는지 확인할 수 있습니다.


그리고grep

grep -v '^\S*_' file

혹은 \S인식이 안되는 경우,

grep -v '^[^[:space:]]*_' file

관련 정보