16 첫 번째 필드가 Linux1로 시작하는 경우 줄을 인쇄하는 방법 예를 들면 다음과 같습니다. echo Linux1_ver2 12542 kernel-update | awk '{if ($1 ~ Linux1 ) print $0;}' 첫 번째 필드는 Linux1로 시작하는 동안 목표는 행을 인쇄하는 것입니다. 라인의 예 : Linux1-new 36352 Version:true Linux1-1625543 9847 Linux1:16254 8467563 비고-공간 또는 TAB은 처음 제출되기 전일 수 있음 text-processing awk — 야엘 소스
15 일방 통행: echo "Linux1_ver2 12542 kernel-update" | awk '$1 ~ /^ *Linux1/' — 전문가 소스 $ 1과 ^는 중복됩니다. 제안서에 탭이 포함되어 있지 않습니다. — Hauke Laging @HuakeLaging 왜 $ 1과 ^가 중복이라고 생각합니까? 첫 단어 만 일치시키고 시작시 일치가 고정되도록 (예 : "mLinux"는 / Linux1 /과 일치하지만 / ^ Linux /와는 일치하지 않음) 둘 다 필요합니다. — Nick Bull
19 awk는 필드를 지정할 때 선행 공백을 무시합니다. 기본 명령은 인쇄입니다. awk '$1 ~ /^Linux1/' 당신이 원하는 것입니다. 상해: $ 1은 awk에게 첫 번째 "열"을 보도록 지시합니다. ~ awk에게 RegularExpression 일치를 수행하도록 지시합니다. /..../는 정규식입니다. RE 내에는 문자열 Linux와 특수 문자 ^가 있습니다. ^는 RE의 시작과 일치하게합니다 (줄의 어느 곳과도 일치하지 않음). 함께보기 : Awk는 첫 번째 열의 시작 부분에서 "Linux"와 정규식을 일치시킵니다. — 요한 소스
2 이것은이 특별한 경우에 효과가 있습니다. awk '/^[[:blank:]]*Linux1/ {print}' — 베른하르트 소스 그러나 공간이 Linux1보다 앞에 있으면 일치하지 않습니다 — yael @yael 나는 그것을 수정하기 위해 편집했다. — Hauke Laging +1이 구문이 무엇인지 궁금해하는 사람은 "정규 표현식이 해당 행과 일치하는 경우에만 중괄호 안에있는 작업을 수행하십시오"라고 말합니다. — user541686