다음 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 인쇄}' 파일