2017-07-18 14 views
0

UNIXで次の処理を実行しようとしています。 毎日、数字がONSITE_EXT_20170707という形式の新しいファイルが作成されます。だから次の日に私はONSITE_EXT_20170708などのファイルを受け取ります。私の目標はこのファイルを取って日付なしで名前を変更することでした。私はしかし、私がする必要があるので、私は新しいファイルを取得していないかもしれないいくつかの日には最初の最新のファイル(最新の日付を持つ1)が何であるかをチェックし、それだけでファイルの名前を変更されUNIXファイル名の削除/変更

mv ONSITE_EXT_$(date +%Y%m%d) ONSITE_EXT. 

を使用しました。これは、ファイルが利用可能かどうかをチェックする必要があります。

ご迷惑をおかけして申し訳ございません。

答えて

1

あなたは同じディレクトリにいると仮定します。ファイルが到着する場所。

$ 猫file_move.sh

#!/bin/bash 
today_file=ONSITE_EXT_$(date +%Y%m%d) 
latest_file=`ls -r|head -1` #get the latest file in directory 
file_part=`echo $latest_file |cut -c1-10` #get only ONSITE_EXT part of file 
    if [ ! -z $today_file ] ; then #check if today_file variable is not empty i.e. todays file has arrived 
     mv ONSITE_EXT_$(date +%Y%m%d) ONSITE_EXT #move the file 
    else 
     mv $latest_file $file_part #if todays file isn't arrived. then move latest file only. 
    fi 
+0

syedavやあ、あなたの助けをありがとうございました。 $ cat file_move.shが何であるか説明してください。その部分は解決策ですか?また、3-5行目で何が起こっているのか説明してください。私は本当にUNIXの経験がありません – afzaaldeveloper1

+0

$ cat file_move.shはスクリプトの一部ではありません。ファイルの内容を表示するだけです。ほぼすべてのステップでコメントを追加しました。 – syadav

+0

ありがとうございましたsyedav!これは素晴らしい – afzaaldeveloper1

関連する問題