我想在文件中搜索所有带有换行符转义序列\n
(反斜杠后跟'n')的.java文件。
我正在使用此命令:
find . –name "*.java" –print | xargs grep “\n”
但结果显示.java文件中的所有行都有字母 n 。
我想搜索换行符\n
。
你能建议一个解决方案吗?
示例:
x.java
method abc{
String msg="\n Action not allowed.";}
y. java
method getMsg(){
String errMsg = "\n get is not allowed.";}
我想搜索具有使用换行符转义序列定义的这些类型字符串的所有* .java文件。
答案 0 :(得分:1)
看起来您想要查找包含2个字符序列\n
的行。为此,请使用grep -F
,它将模式视为固定字符串,而不是正则表达式或转义序列。
find . –name "*.java" –print | xargs grep -F "\n"
答案 1 :(得分:0)
此-P grep将匹配换行符。使用'$'。 由于我的文件中的每一行都包含换行符,因此它将匹配每一行。
grep -P '$' 1.c
我不知道你为什么要在文件中匹配换行符。这很奇怪。
答案 2 :(得分:0)
我相信你正在寻找这个:
find . –name "*.java" –exec grep -H '"[^"]*\n' {} \;
-H
标志用于显示模式匹配时文件的名称。如果这不适合你:
find . –name "*.java" –print0 | xargs -0 grep '"[^"]*\n'
如果xargs -0
不适合您:
find . –name "*.java" –print | xargs grep '"[^"]*\n'
如果grep
不适合您:
find . –name "*.java" –print | xargs egrep '"[^"]*\n'
我需要Solaris中的最后一个版本,在现代系统中,第一个应该可以工作。
最后,不确定该模式是否涵盖了所有角落案例。