一起使用 find grep
Using find grep together
我正在尝试执行命令以从当前文件夹获取所有文件,它的子树以后缀结尾,然后它们需要包含以大写字母和 ! 开头的行。我花了一些时间来寻找解决方案。我只找到了如何打印以大写字符开头的行,但我不知道如何输入 '!' 命令。
这是查找包含以大写字母开头的行的所有文件。我如何添加以查找以 !.
结尾的行
find . -type f -exec grep -l "^[A-Z]+*" {} +
您可以在 grep
:
中使用此正则表达式
find . -type f -exec grep -El '^[[:blank:]]*[A-Z].*![[:blank:]]*$' {} +
以下语法会很有用。如果我答对了问题,这就是适合您的解决方案:
find . -type f -name '*!.*' -exec grep -l "^[A-Z]+*" {} +
find . -type f -name '*suffix' -print0 | xargs -r0 grep -le '^[A-Z].*!$'
随心所欲。
它find
使用后缀名 (-name '*suffix'
) 收集所有文件 (-type f
),并使用 xargs
将这些文件提供给 grep
。然后正则表达式查找以大写字母开头并以感叹号结尾的行。
这里的问题主要是引用。 !
在 bash (和其他 shell)中是特殊的,指的是历史。您需要通过使用单引号或在前面加上反斜杠来转义它。
我正在尝试执行命令以从当前文件夹获取所有文件,它的子树以后缀结尾,然后它们需要包含以大写字母和 ! 开头的行。我花了一些时间来寻找解决方案。我只找到了如何打印以大写字符开头的行,但我不知道如何输入 '!' 命令。
这是查找包含以大写字母开头的行的所有文件。我如何添加以查找以 !.
结尾的行find . -type f -exec grep -l "^[A-Z]+*" {} +
您可以在 grep
:
find . -type f -exec grep -El '^[[:blank:]]*[A-Z].*![[:blank:]]*$' {} +
以下语法会很有用。如果我答对了问题,这就是适合您的解决方案:
find . -type f -name '*!.*' -exec grep -l "^[A-Z]+*" {} +
find . -type f -name '*suffix' -print0 | xargs -r0 grep -le '^[A-Z].*!$'
随心所欲。
它find
使用后缀名 (-name '*suffix'
) 收集所有文件 (-type f
),并使用 xargs
将这些文件提供给 grep
。然后正则表达式查找以大写字母开头并以感叹号结尾的行。
这里的问题主要是引用。 !
在 bash (和其他 shell)中是特殊的,指的是历史。您需要通过使用单引号或在前面加上反斜杠来转义它。