2010-03-21 64 views
0

一个文件的显示内容我有一个server.I想中列出的每个目录的父目录显示文件的内容,其中列出WebLogic实例目录的命令。在父目录

的附加功能将显示在另外的文件名来显示内容

/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed -e 's/weblogic.policy//' -e 's/security\///' -e 's/dep\///' | sort 

上述命令的输出看起来像这样

/opt/<some_directory>/<domain_name>/<app_name>/ 
/opt/<some_directory>/<domain_name>/<app_name>/ 

我想看到的/opt/<some_directory>/<domain_name>/目录中的somefile.cf文件的内容,即/opt/<some_directory>/<domain_name>/somefile.cf

简而言之,我需要一个sed正则表达式来代表从输出中绑定最后一个目录名称。

我想这也

/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed -e 's/weblogic.policy//' -e 's/security\///' -e 's/dep\///' | sort | while read -r DIR ; do dirname $DIR ; done | uniq | sed 's/$/\/somefile\.cf/g' 

,但我肯定,同时部分和最后SED部分可以很容易地通过一个简单的sed命令这样

sed -e 's/<regex_for_last_directory_name>/somefile.cf/' 

回答

2
/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed -e 's/weblogic.policy//' -e 's/security\///' | sort | while read -r DIR 
do 
    cat "$DIR"/somefile.cf 
done 

被废除或者你的意思是一级目录?

/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed -e 's/weblogic.policy//' -e 's/security\///' | sort | while read -r DIR 
do 
    cat "$DIR"/../somefile.cf 
done 
+0

$ DIR /../ somefile.cf有什么问题? – 2010-03-21 08:43:19

+0

没有错。只是滑了我的脑海,这一切:) – ghostdog74 2010-03-21 09:06:55

+0

while read read -r DIR;执行DIR = $ {DIR%* \ /} DIR = $ {DIR%\/*} cat“$ DIR”/somefile.cf;做 扔了一个错误,但 而读-r DIR;做猫“$ DIR”/../ somefile.cf;完成 工作。 谢谢。 任何想法,如果xargs也可以为此工作? – Sharjeel 2010-03-21 09:43:32

0

猫在8 /usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed -e 's/weblogic.policy//' -e 's/security\///' -e 's/$/somefile.cf/' | sort | uniq

+0

与您的两个问题回答。 1)语法上错了:我得到一个错误的猫:auwwx:没有这样的文件或目录 2)somefile.cf是在列出的目录的父目录。 sed -e's/$/somefile.cf/'会将somefile.cf追加到目录列表中,而不是在输出的父目录中。 – Sharjeel 2010-03-22 14:04:47

0

作品,可能需要调整了10.2

猫$(在/ usr/UCB/PS auwwx | grep的的WebLogic | TR '' '\ n' | grep的安全.policy | grep domain | awk -F'=''{print $ 2}'| sed -e's/weblogic.policy //'-e's/security ///'-e's/$/somefile。 cf /'| sort | uniq)

+0

你在什么地方把反引号放在你之前的答案中。我会试着用倒钩。即使它确实起作用,它仍然不会在父目录中找到somefile.cf。 我在我的问题给您当前的回答没有为WebLogic 10.例如工作适用于Weblogic的8,9和10.Hence我使用 – Sharjeel 2010-03-22 15:05:16

+0

我调整你的答案,使之更加紧凑,它的工作原理对于WebLogic 8和9 cat $(/ usr/ucb/ps auwwx | grep weblogic | tr'''\ n'| grep security.policy | grep domain | awk -F'=''{print $ 2}'| sed -e's /weblogic.policy /\.\.\/ somefile \。cf /'-e's/security \ ///'-e's/dep \ ///'|排序) 它为weblogic 10工作,因为不是weblogic 10中的目录 – Sharjeel 2010-03-22 16:14:38