首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用unix中的find命令搜索换行符

问使用unix中的find命令搜索换行符
EN

Stack Overflow用户
提问于 2013-12-19 06:05:46
回答 3查看 11.1K关注 0票数 0

我想搜索所有.java文件,这些文件中都有换行符序列\n (反斜杠后面跟着'n')。

我正在使用以下命令:

代码语言:javascript
复制
find . –name "*.java" –print | xargs grep “\n”

但是结果显示.java文件中的所有行都有字母n。我想搜索一个新行\n。

你能提出一个解决方案吗?

示例:

代码语言:javascript
复制
x.java
method abc{
String msg="\n Action not allowed.";}

y. java
method getMsg(){
String errMsg = "\n get is not allowed.";}

我想搜索所有具有用换行符序列定义的字符串类型的*.java文件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-19 09:43:32

看起来您想要找到包含两个字符序列\n的行。为此,使用grep -F,它将模式视为固定字符串,而不是正则表达式或转义序列。

代码语言:javascript
复制
find . –name "*.java" –print | xargs grep -F "\n"
票数 1
EN

Stack Overflow用户

发布于 2013-12-19 06:46:43

此-P grep将匹配换行符。用'$‘因为我的文件中的每一行都包含一个换行符,所以它将匹配每一行。

代码语言:javascript
复制
grep -P '$' 1.c

我不知道为什么要在files.That中匹配换行符是很奇怪的。

票数 0
EN

Stack Overflow用户

发布于 2013-12-19 09:54:49

我相信你是在找这个

代码语言:javascript
复制
find . –name "*.java" –exec grep -H '"[^"]*\n' {} \;

当模式匹配时,-H标志将显示文件的名称。如果这对你不起作用

代码语言:javascript
复制
find . –name "*.java" –print0 | xargs -0 grep '"[^"]*\n'

如果xargs -0不适合您的话:

代码语言:javascript
复制
find . –name "*.java" –print | xargs grep '"[^"]*\n'

如果grep不适合您的话:

代码语言:javascript
复制
find . –name "*.java" –print | xargs egrep '"[^"]*\n'

我需要Solaris中的最后一个版本,在现代系统中,第一个版本应该可以工作。

最后,不确定模式是否涵盖了所有的角落案例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20674513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档