![열에 문자열이 포함되어 있는지 어떻게 알 수 있나요?](https://linux55.com/image/168102/%EC%97%B4%EC%97%90%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%98%EC%96%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
아래와 같은 파일이 있습니다.
SNP Beta A1 A2 P
rs124 -0.5 T C 0.11
rs534 0.22 A G 0.245
rs199 1.32 G C 0.345
rs947 -0.07 T G 0.00002
rs667 0.37 C T 0.04
....
23640021개의 행이 있습니다. 분석을 했는데 아래와 같은 오류가 발생했습니다.
WARNING: 255837 SNPs had P outside of (0,1]. The P column may mislabeled.
head -10000 file
첫 번째와 마지막 10000개 행에는 0-1 이외의 숫자가 포함되지 않습니다. 그렇다면 P 열에 다른 내용이 포함되어 있는지 확인하는 방법은 무엇입니까?
답변1
이 awk 명령은 마지막 열 값이 1보다 큰지 또는 다른 문자(숫자와 점 제외)가 포함되어 있는지 확인합니다.
$ awk 'NR>1 && ($NF>1 || $NF~/[^0-9.]/)' test.txt
rs534 0.22 A G 0.245B
rs947 -0.07 T G 1.00002
rs667 0.37 C T 0.0A4
$ cat test.txt
SNP Beta A1 A2 P
rs124 -0.5 T C 0.11
rs534 0.22 A G 0.245B
rs199 1.32 G C 0.345
rs947 -0.07 T G 1.00002
rs667 0.37 C T 0.0A4
rs667 0.37 C T 0.04
답변2
경고 메시지는 "닫기 세트"("왼쪽"에서 열림, "오른쪽"에서 닫힘)에 0이 포함되지 않음을 나타내는 것 같습니다. Kamaraj의 우아한 제안을 다음과 같이 수정해 보세요.
awk 'NR>1 && ($NF>1 || $NF~/[^0-9.]/ || $NF == 0)' file