2

bashのディレクトリ名から文字列を合成したいのですが。文字列を作成するには、最後の2つのパス名を抽出する必要があります。

たとえば、入力/a/b/cを使用して、「b_c_HELLO」を作成します。

どうすればbashでそれを行うことができますか?

4

3 に答える 3

2

使用basenamedirname

parent=$(dirname "$input")
output=$(basename "$parent")_$(basename "$input")_HELLO
于 2013-01-05T15:05:36.170 に答える
2
echo $PATH|awk -F"/" '{print $(NF-1)"_"$NF"_HELLO";}'
于 2013-01-05T15:20:52.060 に答える
1

パラメータ拡張を活用した純粋な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 に答える