所以我需要通過一些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