我想搜索所有.java文件,这些文件中都有换行符序列\n (反斜杠后面跟着'n')。
我正在使用以下命令:
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文件。
发布于 2013-12-19 09:43:32
看起来您想要找到包含两个字符序列\n的行。为此,使用grep -F,它将模式视为固定字符串,而不是正则表达式或转义序列。
find . –name "*.java" –print | xargs grep -F "\n"发布于 2013-12-19 06:46:43
此-P grep将匹配换行符。用'$‘因为我的文件中的每一行都包含一个换行符,所以它将匹配每一行。
grep -P '$' 1.c我不知道为什么要在files.That中匹配换行符是很奇怪的。
发布于 2013-12-19 09:54:49
我相信你是在找这个
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中的最后一个版本,在现代系统中,第一个版本应该可以工作。
最后,不确定模式是否涵盖了所有的角落案例。
https://stackoverflow.com/questions/20674513
复制相似问题