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:由“文本在找到匹配引用之前结束”引起的“无法解析参数”[重复]