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 印刷}' ファイル

関連情報