리눅스에서 줄의 일부를 삭제하는 방법은 무엇입니까?

리눅스에서 줄의 일부를 삭제하는 방법은 무엇입니까?

이런 파일이 있다고 가정 해 봅시다

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

관련 정보