2015-05-20 159 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。谢谢 –