ファイルを検索して置換するためのシェル スクリプトが必要です。詳細は以下。助けてください
- 基本的に毎日、ディレクトリにいくつかのファイルを取得します.以下のように、100個のファイルを取得します
AllResponses_11003_6_20_2013.txt
AllResponses_11004_6_20_2013.txt
AllResponses_11005_6_20_2013.txt
AllResponses_11006_6_20_2013.txt
AllResponses_11007_6_20_2013.txt
AllResponses_11008_6_20_2013.txt
AllResponses_11009_6_20_2013.txt
AllResponses_11010_6_20_2013.txt
AllResponses_11011_6_20_2013.txt
AllResponses_11012_6_20_2013.txt
- その中で、ファイル番号(11003、11004、11005、11006、11007)に基づいて、5つのファイルを別のディレクトリにコピーする必要があります
AllResponses_11003_6_20_2013.txt
AllResponses_11004_6_20_2013.txt
AllResponses_11005_6_20_2013.txt
AllResponses_11006_6_20_2013.txt
AllResponses_11007_6_20_2013.txt
- 見つからない場合は、これら 5 つのファイルを別のディレクトリに 0 バイトのファイルに置き換える必要があります。
助けてください
しかし、11003 から 11100 のような何百もの数字の中で num を 11003,11004,11005,11006,11007 として渡す方法
助けてください...
export SRCDIR=/informat/PowerCenter/9.1.0/server/infa_shared/SrcFiles/CSI/historical
export TGTDIR=/informat/PowerCenter/9.1.0/server/infa_shared/SrcFiles/CSI/incoming
エクスポート FILEDT=6_15_2013
export FILEDT=$(日付 +"%-m_%-d_%Y")
ファイルを検索してコピーするためのループ
"$@" の FILE_NUM に対して;
行う
GET_FNAME="AllResponses_"${FILE_NUM}"_"${FILEDT}"*.txt"
if [ -f ${GET_FNAME} ]; それから
cp ${SRCDIR}/${GET_FNAME} ${TGTDIR}
そうしないと
echo "ファイル ${GET_FNAME} が ${SRCDIR} にありません"
touch ${TGTDIR}/AllResponses_${FILE_NUM}_${FILEDT}.txt
echo "${GET_FNAME} touch ファイルを ${TGTDIR} に作成しました"
やった
上記のように実行し、 ksh -x csi_file_copy_bala.ksh 11003 11004 99999 として実行します
しかし、それは常にelse句になります..助けてください...
私のファイルの名前は次のようになります...AllResponses_11004_6_11_20132_18_00AM1.txt
助けてください...時間がないので
前もって感謝します