从 ls 找到的文件中排除某些文件

弗利西奇

在我的当前目录中有一些文件和文件夹,例如:

data
log.txt
info.txt
process_data.sh

如何从ls输出中排除目录data和文件log.txt

我试过:ls |grep -v data |grep -v log.txt但是这个命令也排除了,process_data.sh因为data它的名字中存在。

我试过:ls --ignore="data"简单地尝试先排除data,但收到错误:

ls: illegal option -- -
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]

这可能表明--ignore在我的操作系统中不合法。我正在使用 mac。

docgyneco69

我建议使用循环来遍历目录中的文件,而不是最不可靠的“ls”输出(例如“for f in *; do grep .. done)。

但要对您的实际问题保持真实:grep 的 -w 标志(整个单词)和-E 标志(扩展表达式)是您的朋友,应该有助于您的精确努力:

ls | grep -vw -E ‘data|log.txt’

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章