Print only usernames from /etc/passwd file using grep, awk or cut commands.

In this post, we will quickly check a quick tip to grep only the usernames from /etc/passwd file using grep command.

So here goes the command:

1. Using grep command

[root@nglinux ~]# cat /etc/passwd | grep -o "^[a-zA-Z_-]*" | head
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
[root@nglinux ~]# 

Understanding the grep command option:- It greps the string starting from beginning i.e. ^ which matches either alphabet a-z or capital case alphabet A-Z or the character – or underscore _, once it encounters “:” it stops and prints the greped content.

2. Using awk command
We can also perform the above task using awk command, however a bit slow since awk performs the operation line by line, field by field.

[root@nglinux ~]# cat /etc/passwd | awk -F ":" '{print $1}' | head
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
[root@nglinux ~]# 

3. Using cut command
We can also perform above task using cut command easily, like below:

[root@nglinux ~]# cat /etc/passwd | cut -d ":" -f1 | head
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
[root@nglinux ~]# 

Here we have shown some of the ways we can perform the above task, however there are number of ways to achieve same thing in linux bash programming.

I hope you liked the above tip, do post here your comments.

5 1 vote
Article Rating
Subscribe
Notify of
guest

1 Comment
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
cccc
cccc
11 months ago

love it