シェルスクリプトで2つのファイルの文字列を比較するには?

シェルスクリプトで2つのファイルの文字列を比較するには?

最初のフィールドはユーザー名、2番目のフィールドはパスワード、最後のフィールドは操作(ログイン/登録)を表します。

ファイル1:ユーザー入力

hello,world,register

ファイル2:プレーンテキストデータベース

admin,123
user,321
foo,bar

ユーザー名がすでに存在することを確認するために、ユーザー入力をデータベースと比較する方法は?

次のコードを試しましたが、動作しません。

if cut -d "," -f1 user_input | grep -wf user_input database; then
    echo "This username is already in use, try again!"
else
    echo "Successfully registered!"
fi

PS:awk、sed、またはfindなしでgrepとcutのみのソリューションが必要です。

ベストアンサー1

grep+cut方法:

if grep -qwf <(cut -d, -f1 user_input) database; then 
    echo "This username is already in use, try again!"
else
    echo "Successfully registered!"
fi

おすすめ記事