在shell脚本中,grep -Eo {regex} {file}返回正则表达式的匹配部分。例如:
$ echo \
'For support, visit <http://www.example1.com/support>
You can also visit <http://www.example2.com/products> for information.'
| grep -Eo 'http://[a-z0-9_.-]+/'
http://www.example1.com/
http://www.example2.com/我将如何使用Perl来做到这一点呢?
发布于 2014-07-07 15:25:08
以下是两种方法:
$&包含正则表达式的匹配部分。
perl -ne‘打印"$&\n“如果m#.-]+/#’‘<输入$1、$2、.
perl -ne‘打印"$1\n“如果m#(.-]+/)#’< input发布于 2014-07-07 17:29:45
为了获得-o功能,我建议如下:
echo abcdabcd | perl -lne 'while ($_ =~ s/(bc)//){print $1}'
bc
bc
echo abcdabcd | grep -Eo 'bc'
bc
bc但以你为例,我建议perl -pe 's|(http://[\w-\.]+/).*|$1|g'
echo 'http://www.example1.com/support' | perl -pe 's|(http://[\w-\.]+/).*|$1|g'
http://www.example1.com/https://stackoverflow.com/questions/24614049
复制相似问题