我有 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"模式。printf
或find
都可以。
# 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'