2016-10-07 7 views
1

まず、サーバーはSolarisを実行します。 質問の文脈はInformatica PowerCenterです。Solaris:Regex特定のファイル名でファイルを選択する方法

受信トレイディレクトリにあるファイルをリストする必要があります。基本的には、結果はファイルの種類ごとに1つのファイルリストにする必要があります。異なるファイルタイプは、ファイル名によって区別されます。

/Inbox/ABC.DEFGHI.PAC.AE.1236547.49566 
/Inbox/ABC.DEFGHI.PAC.AE.9876543.21036 
/Inbox/DEF.JKLMNO.PAC.AI.1236547.49566 
:私は、スクリプトを新しいファイルの種類はので、私は正規表現、受信トレイのディレクトリとファイルリスト

例でパラメータ化するシェルスクリプトを考えていた存在を開始するたびに更新する必要はありません

...リストされたファイルのパスとファイル名を含む2つのリストファイルをもたらすことがあります。

/Inbox/PAC.AE.FILELIST 
-->/Inbox/ABC.DEFGHI.PAC.AE.1236547.49566 
-->/Inbox/ABC.DEFGHI.PAC.AE.9876543.21036 
/Inbox/PAC.AI.FILELIST 
-->/Inbox/DEF.JKLMNO.PAC.AI.1236547.49566 

答えて

0

はドットに分割するとき、すべての入力ファイルは、(3番目と4番目の列をあなたが示す規則に従うと仮定すると、タイプを決定する)、このスクリプトはトリックを行うかもしれない:

#! /usr/bin/env bash 

# First parameter or current directory 
INPUTDIR=${1:-.} 
# Second parameter (or first input directory if not given) 
OUTPUTDIR=${2:-$INPUTDIR} 
# Filter out directories 
INPUTFILES=$(ls -p $INPUTDIR | grep -v "/") 

echo "Input: $INPUTDIR, output: $OUTPUTDIR" 

for FILE in $INPUTFILES; do 
    FILETYPE=$(echo $FILE | cut -d. -f3,4) 
    COLLECTION_FILENAME="$OUTPUTDIR/${FILETYPE:-UNKNOWN}.FILELIST" 
    echo "$FILE" >> $COLLECTION_FILENAME 
done 

使用法:

./script.sh Inbox Inbox/collections 

受信トレイからすべてのファイル(いないディレクトリ)を読んで、受信トレイ/コレクションにコレクション・ファイルを書き込みます。コレクション内のファイル名はアルファベット順にソートする必要があります。

関連する問題