如何在 Linux 文件名系统中处理名称中包含少数序列之一的许多文件中的一些文件?
How to address some of many files that include one of a few sequences in their name, in Linux file-name system?
我的目录中有一些文件名为:
...
asdfab-18-121.csv
asdfab-19-221.csv
gafaac-19-289.csv
asdfax-19-311.csv
aasdfb-20-122.csv
aasdfb-20-220.csv
aberrc-20-281.csv
aasdfb-21-127.csv
aasdfb-21-224.csv
acadff-21-286.csv
...
我需要同时列出名称中间部分有“-19-”或“-20-”的文件(例如上面的第 2-7 行)。我知道如果只有一个字符是可变的,我可以使用 [seq] 语法。我试过了
ls *@["-19-"|"-20-"]*
不过好像不行。有什么想法吗?
如果在启用 extglob
选项的情况下使用 bash
,或在启用 KSH_GLOB
选项的情况下使用 ksh93
,或 zsh
:
ls *-@(19|20)-*.csv
我的目录中有一些文件名为:
...
asdfab-18-121.csv
asdfab-19-221.csv
gafaac-19-289.csv
asdfax-19-311.csv
aasdfb-20-122.csv
aasdfb-20-220.csv
aberrc-20-281.csv
aasdfb-21-127.csv
aasdfb-21-224.csv
acadff-21-286.csv
...
我需要同时列出名称中间部分有“-19-”或“-20-”的文件(例如上面的第 2-7 行)。我知道如果只有一个字符是可变的,我可以使用 [seq] 语法。我试过了
ls *@["-19-"|"-20-"]*
不过好像不行。有什么想法吗?
如果在启用 extglob
选项的情况下使用 bash
,或在启用 KSH_GLOB
选项的情况下使用 ksh93
,或 zsh
:
ls *-@(19|20)-*.csv