Linuxから行の一部を削除する方法は?

Linuxから行の一部を削除する方法は?

このようなファイルがあるとしましょう。

username:::
username2:56+4564894765:usersfsmas:fdggfdgd:
username3:::
username4:::

「:」なしでランダムなユーザー名を返したいです。ユーザー名には「:」を使用できません。最初の「:」の後には任意の文字を続けることができます。

だから基本的に私が望むもの

$ ./getRandom file
username

$ ./getRandom file
username3

私は正規表現を使って方法がわからないと思います。

答え1

ユーザー名のみを取得するには、cut -d: -f1

任意の行を取得するには、次のようにします。shuf -n 1

だから:

cut -d: -f1 file | shuf -n 1

関連情報