在我的当前目录中有一些文件和文件夹,例如:
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。
我建议使用循环来遍历目录中的文件,而不是最不可靠的“ls”输出(例如“for f in *; do grep .. done)。
但要对您的实际问题保持真实:grep 的 -w 标志(整个单词)和-E 标志(扩展表达式)是您的朋友,应该有助于您的精确努力:
ls | grep -vw -E ‘data|log.txt’
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句