2011-12-27 20 views
0
find `pwd` -type f -name "*.ksh" -exec grep -H ".ksh" '{}' \; -print 2>/dev/null 

を取得し、その結果はこのコマンドを実行するにはKSH名に

/home/edwprod/Partner_com/bin/edw_etl_job_load.ksh:# Program Name :  edw_etl_job_load.ksh 
/home/edwprod/Partner_com/bin/edw_etl_job_load.ksh 
/home/edwprod/Partner_com/bin/exec_housekeep_main.ksh:# Program Name  : exec_housekeep_main.ksh 
/home/edwprod/Partner_com/bin/exec_housekeep_main.ksh:# Called program : exec_housekeep.ksh 
/home/edwprod/Partner_com/bin/exec_housekeep_main.ksh:#!/bin/ksh 
/home/edwprod/Partner_com/bin/exec_housekeep_main.ksh: nohup ${SHELL_DIR}/exec_housekeep.ksh ${ROOT_ID} ${PLAN_ID} ${P_ACTION} ${LVL} & 
/home/edwprod/Partner_com/bin/exec_housekeep_main.ksh 
/home/edwprod/Partner_com/bin/retrive_pwd_edw.ksh:#  echo " USAGE=> filename.ksh appl_schema" 
/home/edwprod/Partner_com/bin/retrive_pwd_edw.ksh 
/home/edwprod/Partner_com/bin/exec_pr_truncate_hkp.ksh:# Program Name  : exec_pr_truncate_hkp.ksh 
/home/edwprod/Partner_com/bin/exec_pr_truncate_hkp.ksh:# Calling program : exec_pr_truncate_hkp.ksh 
/home/edwprod/Partner_com/bin/exec_pr_truncate_hkp.ksh 
/home/edwprod/Partner_com/bin/exec_pr_post_housekeep.ksh:# Program Name  : exec_pr_post_housekeep.ksh 
/home/edwprod/Partner_com/bin/exec_pr_post_housekeep.ksh:# Calling program : exec_pr_post_housekeep.ksh 
/home/edwprod/Partner_com/bin/exec_pr_post_housekeep.ksh 

コマンドを検索し、すべてのシェルスクリプトで、内部に呼び出されるスクリプトの名前を見つけます。この結果からksh名だけを正確に取得する必要があります。これで助けてください?

+0

execを使わずに 'find \' pwd \ '-type f -name" * .ksh "'を使うことを意味しましたか? –

+0

これは、binフォルダ内のkshのリストを提供します。私はスクリプト内で使用されているkshを取得しようとしています。そうすれば、スクリプトが欠落しても、テスト/実行を開始する前に作成することができます。 – AruM

答えて

1

あなたはこの打撃を与える可能性があり(-E-oだけパターンにマッチする出力用で、拡張正規表現のためです):

find `pwd` -type f -name "*.ksh" -exec grep -E -o "[a-zA-Z0-9_]*\.ksh" '{}' \; 

独自のリストを取得するには:

find `pwd` -type f -name "*.ksh" -exec grep -E -o "[a-zA-Z0-9_]*\.ksh" '{}' \; |sort -u 

・ホープ、このことができます!

+0

@ user1454492:ありがとうございました! –

関連する問題