Bash - Linux - 在一行中找到匹配并打印到SED / Awk / Grep行的末尾

问题描述 投票:0回答:2

我做一个ps -ef命令,我将几个参数传递给正在运行的命令。我想只打印hostname \ process1之后的进程名称。我不能使用awk命令和-f来分解线路; ps命令输出不同,这是不实际的。所以也许我可以使用一个sed命令?

示例输入

/bin/ksh /var/tmp/xxx -bin -tin /tet/1/3/5/host1/bin/x1.sh
/bin/ksh /var/tmp/xyz -bin -tin /tet/1/3/5/host2/bin/y2.sh
/bin/ksh /var/tmp/ttt -bin -tin /tet/1/3/5/host3/bin/z3.sh

输出应该如下所示

host1 x1.sh
host1 y2.sh
host1 z3.sh

提前感谢你

bash awk sed grep
2个回答
1
投票
awk -F/ '{print $(NF-2), $NF}'

为您提供所需的输出。


0
投票

sed替代方法:

sed -E 's:.*/([^/]+)/[^/]+/([^/]+)$:\1 \2:' file

输出:

host1 x1.sh
host2 y2.sh
host3 z3.sh
© www.soinside.com 2019 - 2024. All rights reserved.