우선순위로 동적 문자열을 인쇄하는 방법 - 한 줄

우선순위로 동적 문자열을 인쇄하는 방법 - 한 줄

그래서 먼저 동적 문자열을 인쇄하는 명령을 구성하고 싶습니다.

변수가 있습니다.

a=first
b=second/third/fourth/...

sed명령을 실행하고 싶습니다.b

sed  -e 's/\//_/g'

나는 얻다

second_third_fourth_

a/${b}그럼 이렇게 인쇄하고 싶어요`

first/second_third_fourth_

이 같은:

echo first/(second/third/fourth... | sed  -e 's/\//_/g' )

저는 bash 스크립팅이 처음이고 CI 환경에서 이 작업을 수행해야 합니다.

답변1

]# echo $a $b
first sec/th/for/

]# echo $a/${b//\//_}
first/sec_th_for_

man bash에서 이 위치 찾기: /Param<Enter>nnnnn대소문자 구분매개변수 확장절.

답변2

bash:

echo "$a/${b//\//_}"

zsh:

echo $a/${b:gs;/;_}

답변3

Bash에서는 간단히 다음을 수행할 수 있습니다.

$ echo "$a/$(sed  -e 's/\//_/g'<<<"$b")"
first/second_third_fourth_...

이것은 <<<변수를 프로그램에 입력으로 전달하는 빠른(그러나 이식 가능하지는 않습니다. bash는 이것을 지원하지만 다른 많은 쉘은 지원하지 않음) 방법인 herestring입니다.

또는:

$ echo "$a/$(tr '/' '_'<<<"$b")"
first/second_third_fourth_...

답변4

다음에서 시도해 볼 수 있습니다 bash.

# NOT var x=...
a=first
b="second/third/fourth/"

# use another separator to avoid escaping backlashes, in this case a semicolon
echo "$a/$(echo "$b" | sed 's;/;_;g')"

산출:

first/second_third_fourth_

관련 정보