Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在unix中从字符串中提取内容_Unix_Sh - Fatal编程技术网

在unix中从字符串中提取内容

在unix中从字符串中提取内容,unix,sh,Unix,Sh,当我跑步时 ps aux | grep dexter | grep ruby | grep -v grep 这就是我得到的 dexter 3285 0.0 0.0 31652 5356 ? S 00:01 0:01 ruby /home/dexter/script.ruby 我有一个字符串中的整个输出,比如 s= dexter 3285 0.0 0.0 31652 5356 ? S 00:01 0:01 ruby /home/dexter/script.rub

当我跑步时

ps aux | grep dexter | grep ruby | grep -v grep
这就是我得到的

dexter  3285  0.0  0.0  31652  5356 ?  S  00:01  0:01 ruby /home/dexter/script.ruby
我有一个字符串中的整个输出,比如

s= dexter  3285  0.0  0.0  31652  5356 ?  S  00:01  0:01 ruby /home/dexter/script.ruby
我需要从字符串中提取/home/dexter/script.ruby。如何在unix中实现这一点?

使用awk

ps aux | grep dexter | grep ruby | grep -v grep | awk '{print $11}'
你可以用


谢谢你的帮助,但我需要一些awk的替代品。awk的输出不会以某种方式传输到我的脚本中。特别是因为您无论如何都调用了awk,所以可以对其进行重构
ps aux | awk'/[d]exter/&/[r]uby/{print$11}'
。使用命令替换捕获结果:
s=$(ps aux | awk'/[d]exter/&/[r]uby/{print$11})
将结果放在
$s
中。不过,在示例输出中,您想要的字符串似乎是
$12
。为了提高准确性,您可以说
awk'$1==“dexter”&&$11==“ruby”{print$12}”
Unix是一个操作系统。您的问题与Bourne shell编程语言有关,即
sh
。我添加了相应的标记。
 echo '/'${s#*\/}