2013-09-27 31 views
1

我需要在第三個/後修剪網址。我從一開始就刪除了http以使其更容易。第三級後修剪網址

例子:

a.ssl.fastly.net/static/r07/auth014.js 
0.tqn.com/f/f/a/a.ttf?v=3.0.1 

這應返回

a.ssl.fastly.net/static/r07 
0.tqn.com/f/f 

我試圖

echo "0.tqn.com/f/f/a/a.ttf?v=3.0.1" | sed 's/.*[\/].*[\/].*[\/].*/\1/' 

,但它似乎沒有工作,並拋出一個錯誤:

sed: -e expression #1, char 26: invalid reference \1 on `s' command's RHS 

任何人都可以幫我嗎?

awk -F/ '{print $1"/"$2"/"$3}' file 

回答

2

您可以用awk使用/作爲分隔符和打印

awk -F/ '{$NF=""}1' OFS=/ 
a.ssl.fastly.net/static/r07/ 
0.tqn.com/f/f/a/ 
+0

非常感謝..這工作...不能相信我忘了這.. – rahul

0

這消除了最後一個字段:

3

您還可以使用cut

cut -d/ -f1-3 

例子:

$ echo "0.tqn.com/f/f/a/a.ttf?v=3.0.1" | cut -d/ -f1-3 
0.tqn.com/f/f 
1

這可能爲你工作(GNU SED):

sed 's|/[^/]*||3g' file 

使用|作爲替代命令分隔符,刪除/後跟任意數量的非/的從第三次數到行的末尾。