bash에서 디렉토리 이름의 문자열을 합성하고 싶습니다. 문자열을 만들기 위해 마지막 두 경로 이름을 추출해야합니다.bash에서 문자열을 만들기 위해 경로 요소를 추출하십시오.
예를 들어 입력이 /a/b/c
인 경우 "b_c_HELLO"를 입력하고 싶습니다.
어떻게해야합니까?
bash에서 디렉토리 이름의 문자열을 합성하고 싶습니다. 문자열을 만들기 위해 마지막 두 경로 이름을 추출해야합니다.bash에서 문자열을 만들기 위해 경로 요소를 추출하십시오.
예를 들어 입력이 /a/b/c
인 경우 "b_c_HELLO"를 입력하고 싶습니다.
어떻게해야합니까?
사용 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"