cmd = string[/\s(\S+)$/, 1]
doesnt fetch me anything:)
No idea that was not my code
program=string.split.last
what if
string = “root 14051 14033 3 08:39 pts/2 00:00:00 /bin/bash -x
-s”
it fetches only -s for me.
As simple as possible, but not simpler. Now we are in the simpler case
But see below
program=string[/[a-z/]+$/]
the command column mauy start with character. i dont want to limit it in
my regexp. it has to be generic.
with all your comments, i tried
pid = run_process[/\s(\d+)/, 1]
cmd = run_process[/:\d+:\d+\s(\S.*)\s$/, 1]
Does not work the :\d+ stuff might be a parameter of the program
is there any other way?
Yep counting fields after all
x = split
y= x[1]
z = x[7…-1].join(" ")
There might still be a pitfall though in case of some old processes
where you will have to analyse if the date takes one or two fields if
memory serves.
> > Very interesting James, I seem to be rather extreme and
> >
> > sec, last = string.split.values_at(1, -1)
> > might be a tad to long for one line in your style, however Ruby syntax
> > just supports this marvelous syntax :)
> >
> > sec, last = string.split.
> > values_at(1, -1)
>
> What is your terminal width, 30?
oops wrong thread, I was caught in the “Beautiful Code Thread”.
You can process the ps output using other commands.
ps -aef|tr -s ’ '|cut -d ’ ’ -f2,8-
This will just print your second column the 8th and anything that
comes after. At this point your regexp only need to split the string
at the first space.
You can process the ps output using other commands.
ps -aef|tr -s ’ '|cut -d ’ ’ -f2,8-
This will just print your second column the 8th and anything that
comes after. At this point your regexp only need to split the string
at the first space.
You’re in trouble if any of your fields have spaces, though the
specific case of ps -aef looks safe enough.