【发布时间】:2019-03-05 16:00:29
【问题描述】:
我有一个 Java 项目,其中有很多行如下所示:
myMethod("some text here ..."
+ " ... more text here"
+ " ... and even more text here");
我需要为此执行 bash 搜索:
"some text here ... ... more text here ... and even more text here";
我尝试过这样的事情:
# Filtering for text between the two parenthesis
$ grep -rn "myMethod" . | awk -F\( '{print $2}' | awk -F\) '{print $1}' | sort | uniq
# replacing the `"$\n` with nothing
$ grep -rn "myMethod" . | sed -e 's/"$\n\s//g' | sort | uniq
# same
$ grep -rn "myMethod" . | sed -e ':a;N;$!ba;s/"$\n/,/g' | sort | uniq
但是,这些都没有给我我想要的东西,即传递给 myMethod 方法的所有唯一字符串。
那么,如何在 bash 中使用 grep、awk 和 sed 替换或过滤 "$\n(引用行尾换行符)?
【问题讨论】:
-
能否请您在您的帖子中提供预期输出示例并告诉我们。
-
@RavinderSingh13 当我说“我需要为此执行 bash 搜索:“这里有一些文本……这里有更多文本……这里有更多文本”时,我做到了。本质上,两个括号之间的文本。
-
通过查看您的个人资料了解到您几乎没有选择任何答案作为正确答案,请在某个时间给出它,当您看到帖子的答案很少时,尝试选择任何答案(最适合您的问题)作为正确的一个。您也可以针对您之前提出的问题(如果适用)这样做,谢谢。
-
@RavinderSingh13 如果您愿意进一步看,您会发现我经常选择一个答案作为正确答案。但是,如果没有答案是正确的答案,我就不能这样做。
-
是的,这就是为什么我提到它适用的地方,不用担心。继续分享和学习 SO,干杯。