查看方面
查看当前子目录名称
# ls
ls -l | grep '^d' | awk '{print $9}'
# find
find . -maxdepth 1 -name ".git" -prune -o -type d -printf "%f\n"
# tree
tree -d --prune -I ".git" -L 1 | awk '{print $2}' | tail -n +2 | head -n -2
查询同时包含文本
判断同时包含 hugo_ext + linux / windows
... | grep -E 'hugo_ext.*linux|hugo_ext.*windows
... | awk '/hugo/ && /windows|linux/'
... | grep "hugo" | grep -E 'windows|linux'
忽略大小写
grep 添加 -i
... | grep -iE 'hugo_ext.*linux|hugo_ext.*windows
... | grep -i "hugo" | grep -iE 'windows|linux'
# awk 方式比较复杂
... | awk 'tolower($0) ~ /hugo/ && (tolower($0) ~ /linux/ || tolower($0) ~ /windows/)'
递归查找当前目录及其子目录下包含 f'
的文件:
find . -type f -exec grep -l "f'" {} \;
命令解释:
find .
:从当前目录开始递归查找。
-type f
:只匹配文件(不包括目录)。
-exec grep -l "f'" {} \;
:
grep -l
:仅输出包含 f'
的文件名。
"f'"
:搜索的字符串,单引号需用双引号包裹。
{}
:表示 find
找到的每个文件。
\;
:表示 exec
命令的结束。
额外选项:
- 忽略大小写:如果需要忽略大小写,添加
-i
:
find . -type f -exec grep -il "f'" {} \;
- 限制文件类型:如果只想检查特定文件类型(如
.py
文件),可以添加条件:
find . -type f -name "*.py" -exec grep -l "f'" {} \;
- 排除二进制文件:避免处理非文本文件(如
.jpg
、.pdf
):
find . -type f -not -name "*.jpg" -not -name "*.pdf" -exec grep -l "f'" {} \;
- 查看匹配内容:如果想看到具体匹配的行,去掉
-l
:
find . -type f -exec grep "f'" {} \;