我陷入了一个困境,我的脚本应该找到两个不同的文件。其中一个时间戳与D210929
另一个时间戳相似20210929
。我有这两个文件:
HGIS4C.IOPZ.IP4.CCCP.D210929.S004596.IO99999.19992.1111.CCCP.IP9999
HGS4C.SCS.CCA1.TSILocationContactData20210929.zip
我的问题是如何用find
命令找到这两个文件?例如
find . -name "TBSI4C.[SCS]*.[D]${DATE}" | grep -c TBSI4C 2>/dev/null
答案1
您可以指定多个-name PATTERN
参数,就像这样
find . -name PATTERN1 -o -name PATTERN2
答案2
YYYYMMDD
假设您在 shell 变量中的表单上有一个日期date
,您可以使用 删除该日期的前两个字符${date#??}
。
现在,您可以用于find
搜索当前目录中或当前目录下名称与两种模式*$date.zip
或*.D${date#??}.*
.
find . -type f \( -name "*$date.zip" -o -name "*.D${date#??}.*" \)
上面将找到这两个文件(或者,它将至少找到这两个文件)。如果您想对文件执行某些操作,可以通过-exec
选项调用实用程序。find
由于您没有说明打算如何使用这些文件,因此不可能在这里给出实际示例。