所以我需要通过一些java文件,每一个@author标签之后拉出作者。我开始看awk,但awk无法删除无用的部分,所以我碰到了this。
我正在运行
perl -n -e'/author (.*)/ && print $1' *.java
这将打印什么。如果我做
perl -n -e'/author (.*)/ && print $_' *.java
它会(正确)打印整条线。
我能做到这一点,它也完成我的目标,但我还是想知道为什么我的捕获组不能正常工作。
perl -n -e"/\@author/&& print $'" *.java
例输入:
/* HelloWorld.java
* @author Partner of Winning
* @author Robert LastName
*/
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
非常感谢任何帮助。
一个区别是'$ _'以换行符结束,但$ 1'不结束。也许在选项中加入'-l'会有帮助吗? – 2014-12-04 15:19:18
当你说“这不会打印任何东西”时,你的意思是它实际上不打印任何东西?因为它适合我。或者你的意思是你得到了一个错误,或者其他什么都不是“无”。 – TLP 2014-12-04 15:21:05
@Jonathan:这确实奏效。看起来'-l',似乎只是添加一个换行符。试图在打印声明中添加一个换行符,这也起作用。 – mtfurlan 2014-12-04 15:24:00