我有一个文件中的原始PS命令输出,我想找到如果找到pmon然后我需要打印像Oracle,数据库,如果Jboss发现需要打印像Jboss,Middle-ware。
我有如下的映射文件
PMON,甲骨文,数据库
JBoss和JBoss和中间件
WebLogic中,WebLogic中,中间件。
我需要为此编写一个shell脚本,请你帮帮我 感谢
答案 0 :(得分:0)
这样的东西,也许?:
$ cat foo
pmon Oracle,Database
jboss Jboss,Middle-ware
weblogic Weblogic,Middle-ware.
bash Bash,shell
代码:
$ ps | awk '
BEGIN { # hash the mapping file foo in the BEGINning:
while((getline < "foo") > 0) # read records from file
a[$1]=$2 # hash to a
close("foo") } # be nice now and shut it up
$NF in a { $0=$0 OFS a[$NF] } # append mapping to the end of output
1' # print
PID TTY TIME CMD
4611 pts/3 00:00:04 bash Bash,shell
15691 pts/3 00:00:00 ps
15692 pts/3 00:00:00 awk
31785 pts/3 00:00:00 emacs
下行:a[$1]=$2
只允许一个字映射,映射如下:
emacs greatest entity's right hand
会失败(好吧,不完全是,它会输出emacs greatest
:)。
答案 1 :(得分:0)
感谢Jamesh的时间。
我能够用这个实现
读线时
做
txtgrep = echo $line | cut -d@ -f1
txtappend = echo $line | cut -d@ -f2
完成
我修改了映射文件,如
jboss @ jboss,中间件