在文件夹中的文件中查找非 ascii 字符

在文件夹中的文件中查找非 ascii 字符
find . -type f -regex '.*\.\(cpp\|h\)' -exec grep -Pl "[\x80-\xFF]" {} \; | xargs -I % bash -c 'echo "%"; grep --color='auto' -P -n "[\x80-\xFF]" "%"'

命令用途:在文件夹中的文件中查找非 ascii 字符

管道分解

该命令通过管道(|)将多个命令串联,前一个命令的输出作为后一个命令的输入,逐步处理数据。

  1. 第 1 步:find . -type f -regex '.*\.\(cpp\|h\)' -exec grep -Pl "[\x80-\xFF]" {} \;
    文件查找工具 — 在指定目录树中递归查找符合条件的文件或目录,支持按名称、类型、大小、时间等多种条件过滤。
  2. 第 2 步:xargs -I % bash -c 'echo "%"; grep --color='auto' -P -n "[\x80-\xFF]" "%"'
    参数传递工具 — 从标准输入读取数据并将其作为参数传递给指定命令,解决参数列表过长的限制。

完整命令

find . -type f -regex '.*\.\(cpp\|h\)' -exec grep -Pl "[\x80-\xFF]" {} \; | xargs -I % bash -c 'echo "%"; grep --color='auto' -P -n "[\x80-\xFF]" "%"'

评论(0

暂无评论,来说两句吧

发表评论

回复 取消