2015-05-20 197 views
0

我必須在我的shell腳本中讀取文件。我正在使用PL/SQL的UTL_FILE來打開文件。 但我必須做一個新的更改,將追加時間戳到文件。UNIX Shell腳本:文件讀取問題

e.g import.data文件成爲import_20152005101200.data

現在時間戳是在該文件到達服務器的時間。 由於文件名稱已更改,我無法使用舊的文件訪問方式。 我想出了以下解決方案:

UTL_FILE.FOPEN( '路徑', '進口_ $ {} file_date。數據', 'R');

要做到這一點我一定要得到的文件名,並使用SUBSTR得到時間戳和傳遞給file_date變量修剪。 但是我無法找到如何訪問特定路徑中的文件名。我可以使用basename。但由於時間戳,我的文件名不斷變化。

歡迎任何幫助/替代想法。

+0

你是否要求一種方法來查找給定位置中文件的名稱? –

+0

我明白了。我使用ls -1並將文件名傳遞給臨時文件。後來我閱讀並獲取文件名。 –

回答

0

PL/SQL不是解決此問題的好工具; UTL_FILE沒有任何工具來列出文件夾中的所有文件。

更好的解決方案是定義一個存儲過程,它使用UTL_FILE並傳遞文件名作爲過程的參數進行處理。這樣,您可以使用shell(它具有許多功能強大的命令和工具來檢查文件夾和文件)或腳本語言(如Python)來確定要處理的文件。

+0

是的。我只用了shell命令。使用ls -1。謝謝 –