섹션이 포함된 입력 양식이 있습니다.
TCTTTTAAAGCCTCCTCAACTGTTTTAGGG 1 0
CACAACTGAAAAGTACAATGTGTTTGCTTC 1 0
CACCATATTTATTTAAAGGAGCATCTAAAT 1 3
ACGAGAAAAAAAAAAGGGGTGACCCCCTGG 3 0
CAAAATATTAATTCTTTACTATGAAACTTA 1 0
TTCTATTTTGTCGTGGTTAGCAACCATCAC 6 5
TAATAATAAAATAATGAAAAAGAAAAATCA 1 0
AAAGCATTTGAAGGTGACAAAAGGGAAAGT 20 7
TGCTAAGGAAGAATCATGGAAGAGTGTTTT 0 1
CTCCCTTCCTCGCAAACATGCTTGCCCAGG 0 1
AATAAAAATCAAATTTAGTGACGGGTTGAG 130 4
AGAACGAAGCTGATATAAAGACATCAAAGA 1 0
TGCCCCTAATGCAGCATCTCTCTCTCCCTC 1 0
CCACAAAATAATTACATGGCAAACACGAGT 1 0
열 3 >= 120 및 열 2 >= 420인 모든 행을 인쇄하고 싶습니다.
숫자 주위에 ""를 사용하거나 사용하지 않으면 두 가지 다른 결과를 얻을 수 있습니다.
(A) awk '$3>=120 && $2>=420 {print $0}'
(B) awk '$3>="120" && $2>="420" {print $0}'
내가 원하는 것처럼 보이는 부분 (A)의 결과는 다음과 같습니다.
GTGTCATTTCATGCCTCATTCATCCTCATT 1375 439
TGAATTCTATTACTTGATTGACATTGACAG 541 301
TCTTTGGCGGTTGTTAAAGAATTTTCTGAT 823 203
TCTACACCTCAATATGCAAAACATTACATC 535 165
TTCAACAAATTAATTAAAATTGAATTAAAC 3010 627
GATATGTAAAAAAAATTATATTATATGAAT 609 173
(B)에 대한 결과 중 일부는 내가 원하는 것이 아닙니다.
TAATAATAATAATAAAAGAAGAAGAAAAGA 5 2
TATCTGAGCTATCAACTCAATTCATCGTCG 5 4
TTAATGATAAATTTATCTTAAAAGTTTAAC 62 23
TTCAACCCCCTCTCCTGGTGTGTGCCCTAG 45 7
TCCAAAGCCTTTAATGTGTACCGCGTGAAA 6 5
GGCAATGGGATACTCCTGTATGTTATTCTA 6 3
마음에 떠오르는 질문은 다음과 같습니다. 숫자 선택 시 따옴표(")의 차이점은 무엇입니까?
매우 감사합니다.
답변1
따옴표는 숫자의 문자열 표현을 강제로 비교합니다. 알파벳순으로 "42"는 "120" 뒤에 옵니다("42" > "120"). 수치적으로는 그렇지 않습니다(42 < 120).
답변2
비교는 따옴표 없이 수행됩니다. 그렇지 않으면 사전순으로 수행되는 문자열 비교가 됩니다.
awk
기본 작업을 수행하도록 허용하면 작은 스크립트의 크기를 더욱 줄일 수 있습니다. 블록이 없는 조건부 테스트의 기본 작업은 {...}
현재 입력 줄을 인쇄하는 것입니다.
awk '$2>=420 && $3>=120' data.in