2012-05-01 11 views
0

私は次の操作を実行しようとしています:以前のファイルと新しいファイルを一緒に、mvを一時ファイルに置き換えてください。

  • (存在する場合)は、前のファイル名を取得します - 私は "、すなわち一時ファイル「filename.002」にこの
  • 猫2つのファイルをやりました

    を:filename.003" どこかまたは多分に>>一時ファイル
  • MVダウンロードしたファイルは、私は次のことを行っているファイル名

を修正するためにそれを

  • MV一時を削除します私はこれを実行すると、私は起こることになっていただきましFileName.005 Pastie

    を入力すると

    set -x 
    
    substring() 
    { 
        VAR=$1 
        OFFSET=$2 
        LENGTH=$3 
        RET_VAL=${VAR:$OFFSET:$LENGTH} 
    } 
    
    # $1 filename 
    
    # Change to PF Gazetteer directory 
    cd $CARRIER_PF_UPDATES_DIR 
    
    LOG=log.txt 
    DownloadedFile=$1 
    OldFile= 
    DATE=$(date +"%Y-%m-%d-%H:%M:%S") 
    RET=0 
    
    if [ "${2+1}" == "1" ] 
    then 
        echo "Date: " $DATE > $LOG 
        echo "filename: " $DownloadedFile >> $LOG 
    fi 
    
    substring ${DownloadedFile} -3 3 
    extension=$RET_VAL 
    old_ext=$((${extension}+1)) 
    substring ${DownloadedFile} 0 9 
    echo $RET_VAL 
    oldFile="${RET_VAL}${old_ext}" 
    #oldFile=`printf "%02d" ${RET_VAL}` 
    #printf -v oldFile %02d "$RET_VAL" 
    #printf -v oldFile %02d "$((10#$RET_VAL - 1))" 
    extension=${1##*.} 
    printf -v decr "%s.%0${#extension}d" "${1%.*}" "$((10#$extension - 1))" \ 
    && cat -- "$decr" "$1" > temp \ 
    && rm -- "$decr" \ 
    && mv -- temp "$1" 
    oldFile="${oldFile}${old_ext}" 
    echo $oldFile 
    
    # move any temporary files if they exist 
    mv "${DownloadedFile}~" ${DownloadedFile} 
    
    # check to see if we got a file 
    result=$(grep 226 run.ilog) 
    
    
    if [ "${2+1}" == "1" ] 
    then 
        echo "grep found: " $result >> $LOG 
    fi 
    
    if [ -e "${DownloadedFile}" ] 
    then 
        #add back onto filename 
        #store back onto var = $OldFile 
        #Check if OldFile exist 
        #Cat files together and - Cat oldFile DownloadedFile > tempFile 
    echo "" 
    fi 
    
    if [ "$result" == "" ] 
    then 
        # File not found 
        RET=100 
    else 
        RET=10 
        # START F4202 
        sorted=$(sort -t'+' -k7 ${fileName} > ${fileName}.sorted) 
        if [ -e "${fileName}.sorted" ] 
        then 
         mv "${fileName}" "unsorted/${fileName}.unsorted" 
         mv "${fileName}.sorted" ${fileName} 
        fi 
        # END F4202 
    fi 
    
    if [ "${2+1}" == "1" ] 
    then 
        echo "script ret: " $RET >> $LOG 
    fi 
    
    exit $RET 
    

    は、しかし、私は、ターミナルで次のように受け取る 1)が、私はそれをチェックしファイル名すなわちFilename.005に入力することですそれは を存在する場合)Filename.004

    3)次に猫一緒に内容が一つのファイルにすることであろうことから1を減算されている古いファイルを取得します。

    これを正しく実行しましたか?私がbashで新しくなったので、間違いがあれば私を許してください。

  • 答えて

    0

    ${DownloadedFile}~が存在しないため、移動に失敗するという問題があります。まず移動前に存在することを確認する必要があります。

    [ -e "${DownloadedFile}~" ] && mv "${DownloadedFile}~" "${DownloadedFile}" 
    
    +0

    いいえ、移動が存在することを確認すると、これらのエラーの一部がクリアされるはずです。 –

    +0

    これでうまくいきましたが、まだ残っています: 'cat:FileName.004:そのようなファイルやディレクトリはありません。 cat:FileName.005:そのようなファイルやディレクトリはありません ' –

    +0

    Do FileName.005とFileName.004はありますか? – dogbane

    関連する問題