通过通配符排除文件扩展名

时间:2019-01-14 09:24:49

标签: linux wildcard

我有一个目录,其中包含* .asc, .txt。 .csv等多个扩展名的文件。 我在只能更改通过变量传递的文件名的脚本中使用此路径。

/home/myuser/mydirectory/{fileNameVariable}

我可以通过将* .csv作为变量值或* .txt传递给各个文件来选择所有.csvs。但是我要做的是选择除* .asc之外的所有文件(.csv,.txt等)。

是否可以使用通配符来排除一个文件扩展名,然后选择其余的扩展名?

1 个答案:

答案 0 :(得分:0)

您可以使用括号扩展仅选择所需的名称和扩展名,并排除任何未命名的扩展名。例如,要查找目录中的所有.csv.txt文件,可以使用:

$ ls -al *.{csv,txt}    ## note: no space after the separating comma

如果您有许多test1..., test2..., etc.文件,而您只想选择test2*.csvtest2*.txt文件,则可以将初始范围缩小为:

$ ls -al test2*.{csv,txt}

当然,您可以使用路径和变量名代替上面的test2