첫 번째 필드가 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이 첫 번째 커밋보다 앞에 올 수 있습니다.
답변1
awk는 필드를 할당할 때 선행 공백을 무시합니다. 기본 명령은 인쇄입니다.
awk '$1 ~ /^Linux1/'
당신이 원하는 것.
상해:
- $1은 awk에게 첫 번째 "열"을 보라고 지시합니다.
- ~는 awk에게 정규식 일치를 수행하도록 지시합니다. /..../는 정규식입니다.
- RE에는 Linux 문자열과 특수 문자 ^가 포함되어 있습니다.
- ^를 사용하면 RE가 처음부터 일치하게 됩니다(줄의 어느 위치에서나 일치하는 대신).
함께 살펴보겠습니다. awk는 첫 번째 열의 시작 부분에 "Linux"가 있는 정규식과 일치합니다.
답변2
일방 통행:
echo "Linux1_ver2 12542 kernel-update" | awk '$1 ~ /^ *Linux1/'
답변3
이는 이 특정 사례에 적용됩니다.
awk '/^[[:blank:]]*Linux1/ {print}'