Linux-输出行列控制

接触到需要控制行和列输出是在获取进程id的场景,需用执行shell去结束对应的进程然后重启。

我是通过端口号来获取进程id的,所以使用的命令是lsof -i:22,得到的结果时:

[root@localhost ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1235 root 3u IPv4 22942 0t0 TCP *:ssh (LISTEN)
sshd 1235 root 4u IPv6 22944 0t0 TCP *:ssh (LISTEN)

但我只需要第二行第二个参数,这个时候就需要用到awk和sed命令了:

[root@localhost ~]# lsof -i:22 | awk '{print $2}'
PID
1235
1235
[root@localhost ~]# lsof -i:22 | awk '{print $2}' | sed -n '2p'
1235

而awk命令是输出哪一列,sed是输出哪一行,最后得到pid就可以通过kill -9 1235来杀掉进程了。

关于sed,awk的其他功能待续…

To be continued!!!