cle*_*leg 14 regex unix bash parsing
我有主管的状态输出,看起来像这样.
frontend RUNNING pid 16652, uptime 2:11:17
nginx RUNNING pid 16651, uptime 2:11:17
redis RUNNING pid 16607, uptime 2:11:32
Run Code Online (Sandbox Code Playgroud)
我需要提取nginx的PID.我已经通过grep -P命令完成了它,但是在远程机器上grep是在没有perl正则表达式支持的情况下构建的.
看起来sed或awk正是我需要的,但我不熟悉它们.
请提前帮助我找一个怎么做的方法.
rek*_*o_t 16
sed 's/.*pid \([0-9]*\).*/\1/'
Run Code Online (Sandbox Code Playgroud)
单独使用AWK:
awk -F'[ ,]+' '{print $4}' inputfile
Run Code Online (Sandbox Code Playgroud)
$ cat $your_output | sed -s 's/.*pid \([0-9]\+\),.*/\1/'
16652
16651
16607
Run Code Online (Sandbox Code Playgroud)
用awk和切割解决方案
vinko@parrot:~$ cat test
frontend RUNNING pid 16652, uptime 2:11:17
nginx RUNNING pid 16651, uptime 2:11:17
redis RUNNING pid 16607, uptime 2:11:32
vinko@parrot:~$ awk '{print $4}' test | cut -d, -f 1
16652
16651
16607
Run Code Online (Sandbox Code Playgroud)
仅适用于nginx:
vinko@parrot:~$ grep nginx test | awk '{print $4}' | cut -d, -f 1
16651
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30080 次 |
| 最近记录: |