我需要从文件中提取n个url。我开始时:
grep -E -o 'ftp://\S*' $filename
我知道,这个特殊的网址将以ftp方案开头,并以一些白色字符(空格或换行符)结束。
我收到的内容如下:
的ftp:/dir/some_file.ext
但我只需要一个路径(/dir/some_file.ext)。没有方案(ftp:// part)
我可以使用第一个正则表达式吗?我必须使用第二个吗?
我不能使用其他任何东西,然后grep / egrep。
答案 0 :(得分:1)
如果您的grep
支持-P
(PCRE标志),那么您可以使用:
grep -oP 'ftp:/\K/\S*' $filename
/dir/some_file.ext
如果出于某种原因,您没有grep -P
可用,那么请管道另外grep
:
grep -oE 'ftp://\S*' file | grep -oE '/[^/].*'
/dir/some_file.ext
答案 1 :(得分:1)
此gnu awk
(由于记录选择器中的多个字符)也可能:
awk -v RS="ftp:/" 'NR>1 {print $1}' file