programing

문자열의 일부 문자를 다른 문자로 바꾸기

newnotes 2023. 4. 10. 22:14
반응형

문자열의 일부 문자를 다른 문자로 바꾸기

나는 같은 끈이 있다.AxxBCyyyDEFzzLMN그리고 나는 모든 발생을 대체하고 싶다.x,y,그리고.z와 함께_.

어떻게 하면 좋을까요?

나는 그것을 알고 있습니다.echo "$string" | tr 'x' '_' | tr 'y' '_'잘 될 것 같은데 파이프 없이 한 번에 하고 싶어요.

echo "$string" | tr xyz _

각 발생을 대체하다x,y, 또는z와 함께_,부여A__BC___DEF__LMN를 참조해 주세요.

echo "$string" | sed -r 's/[xyz]+/_/g'

반복적인 발생을 대체하다x,y, 또는z싱글로_,부여A_BC_DEF_LMN를 참조해 주세요.

Bash 파라미터 확장 사용:

orig="AxxBCyyyDEFzzLMN"
mod=${orig//[xyz]/_}

이 링크는 도움이 될 수 있습니다.http://tldp.org/LDP/abs/html/string-manipulation.html

일반적으로 첫 번째 일치를 대체한다.$substring와 함께$replacement:

${string/substring/replacement}

일치하는 항목을 모두 바꾸려면$substring와 함께$replacement:

${string//substring/replacement}

EDIT: 이것은 다음과 같은 변수에 적용됩니다.$string.

다음은 셸 파라미터 확장을 사용하여 여러 개의 연속된 오카렌스를 하나의 오카렌스로 대체한 솔루션입니다._:

$ var=AxxBCyyyDEFzzLMN
$ echo "${var//+([xyz])/_}"
A_BC_DEF_LMN

주의:+(pattern)패턴은 확장 패턴 매칭이 필요하며, 를 사용하여 설정

shopt -s extglob

또는 를 사용하여-s("syslog") 옵션tr:

$ tr -s xyz _ <<< "$var"
A_BC_DEF_LMN
read filename ;
sed -i 's/letter/newletter/g' "$filename" #letter

^필요한 만큼 이것들을 사용하면, 독자적인 BASIC 암호화를 작성할 수 있습니다.

echo 'I dont like PHP' |  sed -r 's/I dont like/I love/g'
## Output: I love PHP

또는

echo 'I like PHP' |  sed -r 's/like/love/g' 
## Output: I love PHP

언급URL : https://stackoverflow.com/questions/2871181/replacing-some-characters-in-a-string-with-another-character

반응형