我想从bash中的目录名称中合成一个字符串。我需要提取最后两个路径名来创建一个字符串。提取path元素在bash中创建一个字符串
例如,输入/a/b/c
时,我想使“b_c_HELLO”。
我该怎么用bash做到这一点?
我想从bash中的目录名称中合成一个字符串。我需要提取最后两个路径名来创建一个字符串。提取path元素在bash中创建一个字符串
例如,输入/a/b/c
时,我想使“b_c_HELLO”。
我该怎么用bash做到这一点?
使用basename
和dirname
:
parent=$(dirname "$input")
output=$(basename "$parent")_$(basename "$input")_HELLO
echo $PATH|awk -F"/" '{print $(NF-1)"_"$NF"_HELLO";}'
一个纯粹的bash实现借力Parameter Expansion:
input="a/b/c"
tmp="${input%%/*/*}"
tmp="${tmp#$tmp/}"
output="${tmp/\//_}_HELLO"