我想从bash中的目录名中合成一个字符串。我需要提取最后两个路径名来创建一个字符串。
例如,输入/a/b/c
,我想制作“b_c_HELLO”。
我怎么能用bash做到这一点?
答案 0 :(得分:2)
使用basename
和dirname
:
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"