如何使用ls排除文件?
How to exclude files using ls?
我正在使用我编写的 python 脚本从 ls
获取一些标准输入并将数据加载到该路径描述的文件中。它看起来像这样:
ls -d /path/to/files/* | python read_files.py
这些文件根据其中的数据具有特定的名称结构,但都存储在同一目录中。我要使用的文件具有名称结构 A<fileID>_###.txt
(其中 ###
始终是一些 3 位数字)。我只需将上面的内容稍微更改为 ls -d /path/to/files/A*
,就可以只获取以 A 开头的文件。但是,一些文件有一个名为 B 的后缀标志(所以文件看起来像 A<fileID>_###B.txt
),我不想包括那些。
所以,我的问题是,有没有办法排除那些以 ...B.txt
结尾的文件(或者只包含以数字结尾的文件)?我想到了一些效果:
ls -d /path/to/file/R*%d.txt
仅包括以数字结尾且后跟文件扩展名的文件,但找不到任何此类文件。
shopt -s extglob
ls R*!(B).txt
你可以试试这个:ls A*[^B].txt
我正在使用我编写的 python 脚本从 ls
获取一些标准输入并将数据加载到该路径描述的文件中。它看起来像这样:
ls -d /path/to/files/* | python read_files.py
这些文件根据其中的数据具有特定的名称结构,但都存储在同一目录中。我要使用的文件具有名称结构 A<fileID>_###.txt
(其中 ###
始终是一些 3 位数字)。我只需将上面的内容稍微更改为 ls -d /path/to/files/A*
,就可以只获取以 A 开头的文件。但是,一些文件有一个名为 B 的后缀标志(所以文件看起来像 A<fileID>_###B.txt
),我不想包括那些。
所以,我的问题是,有没有办法排除那些以 ...B.txt
结尾的文件(或者只包含以数字结尾的文件)?我想到了一些效果:
ls -d /path/to/file/R*%d.txt
仅包括以数字结尾且后跟文件扩展名的文件,但找不到任何此类文件。
shopt -s extglob
ls R*!(B).txt
你可以试试这个:ls A*[^B].txt