linux下如何删除一行的一部分?

linux下如何删除一行的一部分?

假设我有这样的文件

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

我想随机返回一个不带“:”的用户名。请注意,用户名上不能有“:”,并且第一个“:”之后可以有任何字符

所以基本上我想要

$ ./getRandom file
username

$ ./getRandom file
username3

我想我可以用一些正则表达式来 grep 不知道如何

答案1

要仅获取用户名,cut -d: -f1

要获得随机线,请使用shuf -n 1

所以:

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

相关内容