awk 명령의 변수에서 정확한 문자열을 찾으시겠습니까?

awk 명령의 변수에서 정확한 문자열을 찾으시겠습니까?

다음 awk 명령을 사용하여 시스템의 모든 사용자를 나열하는 파일에서 사용자를 반환하려고 합니다. 단, 8번째 필드가 비어 있고 사용자 변수와 일치하는 경우에만 해당됩니다(루프에서 사용됨).

awk -F':' -v user="$user" 'index($0, user) {if ($8=="") print $1}' file

현재 내 문제는 문자열이 포함되어 있고 정확하게 일치하지 않는 사용자를 반환한다는 것입니다. 이 문제를 해결할 방법이 있나요?

답변1

해결되었습니다.

나는 결국 다음을 사용했습니다.

awk -F':' -v user="$user" '$1 == user {if ($8 == "") print $1}' file

난 멍청한 새끼야 하하

답변2

위의 답변은 정확합니다. 하지만 다음 명령을 사용하여 세부 정보를 추출할 수 있습니다.

awk -F ',' '{if ( $9 == "" && $1 ==="$user") $1 인쇄}' 파일

관련 정보