需求如题所示,具体如下:

[root@mysql2 it]# ps -ef | grep systemd | grep -v "grep"
root          1      0  0 Jul05 ?        00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root       3309      1  0 Jul05 ?        00:00:01 /usr/lib/systemd/systemd-journald
root       3340      1  0 Jul05 ?        00:00:00 /usr/lib/systemd/systemd-udevd
root       6913      1  0 Jul05 ?        00:00:00 /usr/lib/systemd/systemd-logind
dbus       6923      1  0 Jul05 ?        00:00:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
[root@mysql2 it]# 

可以看到,普通的匹配,很容易变成一个【模糊检索】。

用下面的方法可以精准的匹配你想要的,而非【模糊检索】:

[root@mysql2 it]# ps -ef | egrep "systemd"
root          1      0  0 Jul05 ?        00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root       3309      1  0 Jul05 ?        00:00:01 /usr/lib/systemd/systemd-journald
root       3340      1  0 Jul05 ?        00:00:00 /usr/lib/systemd/systemd-udevd
root       6913      1  0 Jul05 ?        00:00:00 /usr/lib/systemd/systemd-logind
dbus       6923      1  0 Jul05 ?        00:00:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root      16516  16211  0 21:22 pts/2    00:00:00 grep -E --color=auto systemd
[root@mysql2 it]# 
[root@mysql2 it]# ps -ef | awk '{print $2"#"$8}' | grep "systemd$" | grep -v "grep"
1#/usr/lib/systemd/systemd
[root@mysql2 it]# 
[root@mysql2 it]# ps -ef | awk '{print $2"#"$8}' | grep "systemd-logind$" | grep -v "grep"    
6913#/usr/lib/systemd/systemd-logind
[root@mysql2 it]# 


[……]

Read more