2013-02-05 47 views
0

我有一個文件路徑。shell sed獲取文件路徑

/ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_1.fq.gz 

我想這部分

/T11073_RICekkR/Fq/AS34_59329 

$location

如何使用sed來獲得這些?

回答

1

使用文件路徑時,我發現使用awk更容易 - 但您可以自己動腦筋。這裏就是我想要做的:

location=$(echo "$path" | awk -F "/" '{ print "", $6, $7, $8 }' OFS="/") 

如果你想匹配的圖案,然後sed將是一個不錯的選擇。但是你沒有提到任何規格。

1

使用cutawk(如所建議的)。

但隨着sed做到這一點,你做這樣的事情:一個不錯的答案

locationpath=/ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_1.fq.gz 
location=$(echo $locationpath | sed 's%\(/[^/]*\)\{4\}\(/[^/]*/[^/]*/[^/]*\).*%\2%') 
+0

+1 .. – Suku