2

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

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

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

4

3 回答 3

2
echo $PATH|awk -F"/" '{print $(NF-1)"_"$NF"_HELLO";}'
于 2013-01-05T15:20:52.060 回答
2

使用basenamedirname

parent=$(dirname "$input")
output=$(basename "$parent")_$(basename "$input")_HELLO
于 2013-01-05T15:05:36.170 回答
1

一个利用Parameter Expansion的纯 bash 实现:

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

此外,请参阅http://mywiki.wooledge.org/BashFAQ/100

于 2013-01-05T19:05:36.060 回答