从ps命令我希望在那种情况下定义一些var“PS1”,之后一切都要删除var。
例如:
ps -ef | grep -i PS1
cbsuser 1138700 1 0 Sep 15 - 0:10 ./PS1 PS01 3
预期产出:
./PS1 PS01 3
在我看来,这是错误的:
sed 's/^$/ "PS1"/g'
或相关我不知道如何完成它。
答案 0 :(得分:3)
ps -ef | perl -lne 'print $1 if /(\S* PS1 .*)/xi'
答案 1 :(得分:2)
您可以使用ps
的自定义格式仅输出您需要的内容,因此您只需要在列表中筛选所需的命令:
ps e --format %a | grep PS1
或者甚至更好地使用旨在执行此操作的pgrep
:
pgrep -fl PS1 | cut -f2- -d' '
答案 2 :(得分:2)
一些选择。这些都解析了你的命令。更好的方法是对pgrep
使用o
或ps
选项,但如果您真的想要解析:
grep本身
ps -ef | grep -Po 'PS1.*'
perl的
ps -ef | grep -i PS1 | perl -pe 's/.*(?=PS1)//'
SED
ps -ef | sed 's/.*\(PS1.*\)/\1/'
答案 3 :(得分:1)
ps -ef | grep -i PS1| awk '{ for(i=9;i<=NF;++i)printf "%s ",$i }
答案 4 :(得分:1)
你可以使用它,
ps -eo cmd | grep 'PS1'
答案 5 :(得分:0)
ps -ef | grep -i PS1| grep -v grep| awk '{print $(NF-2)" "$(NF-1)" "$NF}'
答案 6 :(得分:0)
使用pgrep
:
pgrep -fl PS1 | cut -d ' ' -f2-