2011-04-05 87 views
0

如果我想在「sed的」給我這個ID作爲最終的結果,我可以這樣做:b7f6fe86桑達查找和替換問題

輸入可能是http://www.uploading.com/files/b76f5e86/hcadssoto720.part1.rar OR http://uploading.com/files/b76f5e86/hcadssoto720.part1.rar,我想輸出給予ID這個鏈接。

例如

echo http://uploading.com/files/b76f5e86/hcadssoto720.part1.rar | sed 's/SOMETHING/SOMETHING/g" 

OUTPUT:b7f6fe86

echo http://www.uploading.com/files/b76f5e86/hcadssoto720.part1.rar | sed 's/SOMETHING/SOMETHING/g" 

OUTPUT:b7f6fe86

我希望得到的正則表達式的專家的幫助。 乾杯

回答

3
cut -d'/' -f5 

應該這樣做afaik。

+0

只有當你在之後的東西在第四斜線後面時,這纔會起作用。是嗎? – Bacon 2011-04-05 20:43:12

+0

@user,這兩個例子。 – 2011-04-05 20:45:28

+1

是的,這正是OP所描述的他想要的(至少:這就是它所在的位置)。如grep -P -o'(?<= files \ /)[a-z0-9] +'',和恕我直言,可讀性更好,可讀性更好:) – Wrikken 2011-04-05 20:50:55

1

嘗試:

echo "http://uploading.com/files/b76f5e86/hcadssoto720.part1.rar" | sed 's|\([^/]*/\)\{4\}\([0-9a-f]*\).*|\2|'

注意, '/' 字符被替換成 '|'性格來簡化「傾斜牙籤綜合症」的出現。

Bah - 不能讓一些'*'正確顯示 - 啊 - 明白了。