2014-09-19 118 views
1

我需要從文件中提取n個網址。我已經開始:grep提取簡單網址 - 無計劃

grep -E -o 'ftp://\S*' $filename 

我知道,這個特定的URL將以ftp scheme開頭,並以一些白色字符(空格或換行符)結尾。

我收到這樣的:

FTP:/dir/some_file.ext

但我只需要一個路徑(/dir/some_file.ext)。沒有方案(ftp:// part)

我可以用第一個正則表達式來完成嗎?我必須使用第二個嗎?

我不能使用任何其他的grep/egrep。

回答

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

gnu awk(由於記錄選擇器中的多個字符)也可以這樣做:

awk -v RS="ftp:/" 'NR>1 {print $1}' file