查看方面
查看当前子目录名称
# 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'" {} \;