按文件名中字符的位置搜索 Unix 文件名



我有 2 个文件。

`File 1 = ABC2019120601C`
`File 2 = ABC2019120611C`  

如果我键入 ls -l ABC*C,它将输出所有 2 个文件。 有没有办法按角色的确切位置查找文件?

For example
1st position = A
2nd position = B
3rd position = C
and 14th position = C

然后它将仅输出文件ABC2019120601C

Please help if this is possible

谢谢

Bash 通配不仅仅是*,例如?,意思是"任何单个字符":

$ ls -1 ABC*C
ABC2019120601C
ABC2019120611C
$ ls -1 ABC????????0??
ABC2019120601C
$ ls -1 ABC????????1??
ABC2019120611C

从表面上看,ASK 是查找文件,而不考虑嵌入的日期时间(可能是 YYYYMMDDHH(。这转化为"ABC[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]C"模式。printffind都可以。

# Single Folder
printf '%sn' ABC[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]C
# Multiple folders, deep search
find /folder1 /folder2 -name 'ABC[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]C'

最新更新