提取路径元素以在bash中创建一个字符串

时间:2013-01-05 15:02:32

标签: bash shell

我想从bash中的目录名中合成一个字符串。我需要提取最后两个路径名来创建一个字符串。

例如,输入/a/b/c,我想制作“b_c_HELLO”。

我怎么能用bash做到这一点?

3 个答案:

答案 0 :(得分:2)

使用basenamedirname

parent=$(dirname "$input")
output=$(basename "$parent")_$(basename "$input")_HELLO

答案 1 :(得分:2)

echo $PATH|awk -F"/" '{print $(NF-1)"_"$NF"_HELLO";}'

答案 2 :(得分:1)

利用Parameter Expansion的纯粹bash实现:

input="a/b/c"
tmp="${input%%/*/*}"
tmp="${tmp#$tmp/}"
output="${tmp/\//_}_HELLO"

另请参阅http://mywiki.wooledge.org/BashFAQ/100