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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash - Linux - 在一行中找到匹配并打印到SED / Awk / Grep行的末尾相关的知识,希望对你有一定的参考价值。

我做一个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

提前感谢你

答案
awk -F/ '{print $(NF-2), $NF}'

为您提供所需的输出。

另一答案

sed替代方法:

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

输出:

host1 x1.sh
host2 y2.sh
host3 z3.sh

以上是关于Bash - Linux - 在一行中找到匹配并打印到SED / Awk / Grep行的末尾的主要内容,如果未能解决你的问题,请参考以下文章

由于更多匹配,bash没有替换匹配字符串上的一行

bash中,我想匹配文件的某行,匹配到该行以后,将该行和下面的几行输出到另外一个文件,怎么实现?

linux find 正则表达式

Bash:由“文本在找到匹配引用之前结束”引起的“无法解析参数”[重复]

如何在Linux bash中为每个用户在一行中显示组下的用户

在bash中将文本附加到具有模式匹配名称的文件[重复]