获取路径与基本名称模式匹配的文件名

get filenames with paths that match a basename pattern

我有一个文件名列表,它们的路径是这样的

/some/path/or/another/RCrandomname.TRI
/another/path/NCrandomname2.TRI
/one/more/path/RCrandomname3.PCD

我只想选择基本名称以 RC 开头且扩展名为 TRI 的文件名(及其路径) 所以在上面的例子中我只想得到

/some/path/or/another/RCrandomname.TRI

如果我只有基本名称,我就能做到

ls | grep "^RC.*\.TRI$" > filenames

但是我这里有所有的路径。 我有使用 ls

的要求

不要解析 ls 的输出,它在很多方面都容易出错。

您可以通过 shopt globstar:

使用 globbing
shopt -s globstar
ls -1 **/RC*.TRI > filenames

globstar, When enabled, the globbing code treats ** specially -- it matches all directories (and files within them, when appropriate) recursively.