2017-04-01 35 views
1

我的問題很簡單,因爲我的標題是「什麼是perl的相當於grep -o的一行代碼?」。那是隻打印匹配的正則表達式而不是整行?什麼是Perl的相當於grep的一行代碼-o

perl -pe some_option?? 'm/regex/' file 
+0

參見:[grep的-P不再工作我怎麼可以重寫我的搜索(http://stackoverflow.com/questions/16658333/grep-p-no-longer-works-how-can-我重寫,我的搜索/ 16658690)。 (不是一個特定於Perl的問題,但最重要的答案是回答這個問題。) – ikegami

回答

2

如果你想要做的工作的最小量,改變

grep -o -P 'PATTERN' file 

perl -nle'print $& if m{PATTERN}' file 

所以從

grep -o -P '(?<=foo)bar(?=baz)' file 

你:

perl -nle'print $& if m{(?<=foo)bar(?=baz)}' file 

但是,它可以簡單的使用捕獲。

​​
0

你可以只改變代碼:

perl -ne 'if(/(regex)/) {print "$1\n"}' file 
0
perl -nE 'say $& while /regex/g' file 
相關問題