awk+ 첫 번째 필드가 문자열로 시작하는 경우에만 줄을 인쇄합니다(예: Linux1).

awk+ 첫 번째 필드가 문자열로 시작하는 경우에만 줄을 인쇄합니다(예: Linux1).

첫 번째 필드가 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}'

관련 정보