그래서 먼저 동적 문자열을 인쇄하는 명령을 구성하고 싶습니다.
변수가 있습니다.
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_