shell sed获取文件路径

时间:2013-02-05 03:32:26

标签: bash shell

我有一个文件路径。

/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来获取这些内容?

2 个答案:

答案 0 :(得分:1)

使用文件路径时,我发现使用awk更容易 - 但您可以自己动手。这就是我要做的事情:

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

如果您尝试匹配模式,那么sed将是一个不错的选择。但你没有提到任何规格。

答案 1 :(得分: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%')