我需要访问我的 shell 脚本中的两个文件。唯一的问题是,我不确定文件名将是什么,因为它是系统生成的。文件名的一部分始终是不变的,但其余部分是系统生成的,因此可能会有所不同。我不确定如何访问这些文件?
示例文件名
类型 1
MyFile1.yyyy-mm-dd_xx:yy:zz.log
在这种情况下,我知道 MyFile1 部分是所有文件的常量,其他部分根据日期和时间而变化。我可以使用date +%Y-%m-%d
直到,MyFile1.yyyy-mm-dd_
但我不确定如何选择正确的文件。请注意,每天只有一个此类文件。在 unix 中,下面的命令给了我正确的文件。
unix> ls MyFile1.yyyy-mm-dd*
类型 2
MyFile2.yyyymmddxxyyxx.RandomText.SomeNumber.txt
在这个文件中,您可以看到 Myfile2 部分很常见,我可以让用户 Date +%Y%m%d
获取到(当前日期)MyFile2.yyyymmdd
,再次不太清楚如何从那里继续。在 unix 中,下面的命令给了我正确的文件。我还需要在文件 2 的 dd 列中有上一个日期。
unix> ls MyFile2.yyyymmdd*
基本上在我的shell脚本中寻找以下行
#!/bin/ksh
timeA=$(date +%Y-%m-%d)
timeB=$(date +%Y%m)
sysD=$(date +%d)
sysD=$((sysD-1))
filename1=($Home/folder/MyFile1.$timeA*)
filename2=($Home/folder/MyFile2.$timeB$sysD*)
只是不确定如何获取这两个文件的 RHS。
运行上述脚本时的结果如下
Script.ksh[8]: syntax error at line 8 : `(' unexpected