如何grep当前目录,父目录和一个定义的文件旁边的所有文件?
How to grep all files beside current dir, parent dir and one definded?
我有一个包含以下文件/文件夹的文件夹:
.test
README.md
/dist
/src
我想 grep dist
旁边的所有文件。所以结果应该是这样的:
.test
README.md
/src
当我做的时候
ls -a | grep -v dist
它将删除 dist。但是 .
和 ..
存在。但是我需要 -a
来获取带有点前缀的文件。
当我尝试添加 ls -a | grep -v -e dist -e . -e ..
时没有输出。
为什么 -e .
会删除所有文件?怎么做?
最好将 find
与 -not
选项一起使用,而不是容易出错 ls | grep
:
find . -maxdepth 1 -mindepth 1 -not -name dist
顺便说一句,只是为了解决您的尝试,正确的 ls | grep
将是:
ls -a | grep -Ev '^(dist|\.\.?)$'
如果你使用bash,你可以这样做:
shopt -s extglob
echo .[^.]* !(dist)
我有一个包含以下文件/文件夹的文件夹:
.test
README.md
/dist
/src
我想 grep dist
旁边的所有文件。所以结果应该是这样的:
.test
README.md
/src
当我做的时候
ls -a | grep -v dist
它将删除 dist。但是 .
和 ..
存在。但是我需要 -a
来获取带有点前缀的文件。
当我尝试添加 ls -a | grep -v -e dist -e . -e ..
时没有输出。
为什么 -e .
会删除所有文件?怎么做?
最好将 find
与 -not
选项一起使用,而不是容易出错 ls | grep
:
find . -maxdepth 1 -mindepth 1 -not -name dist
顺便说一句,只是为了解决您的尝试,正确的 ls | grep
将是:
ls -a | grep -Ev '^(dist|\.\.?)$'
如果你使用bash,你可以这样做:
shopt -s extglob
echo .[^.]* !(dist)