我有一个命令,列出服务器上的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命令可以轻松完成while部分和最后一个sed部分
sed -e 's/<regex_for_last_directory_name>/somefile.cf/'
答案 0 :(得分: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
答案 1 :(得分:0)
cat /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
答案 2 :(得分:0)
适用于8,可能需要调整为10.2
cat $(/ 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)