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

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

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

관련 정보