2010-03-21 65 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