如何使用find命令查找两个不同的文件

如何使用find命令查找两个不同的文件

我陷入了一个困境,我的脚本应该找到两个不同的文件。其中一个时间戳与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由于您没有说明打算如何使用这些文件,因此不可能在这里给出实际示例。

相关内容