하위 문자열 바꾸기

하위 문자열 바꾸기

문자열을 char로 바꾸는 방법이 있나요?

예:

나는 가지고있다,

123456789 

그리고 이 결과를 생성하기 위해 위치 3부터 위치 8까지의 모든 문자를 *로 바꾸고 싶습니다.

12******9 

어쩌면 사용하는 방법이 있습니까?

sed -i "s/${mystring:3:5}/*/g" ?

답변1

변수를 할당할 수 있습니다.var1=123456789

echo $var1줄게123456789

그 다음에var2="${var1:0:2}*****${var1:8:9}"

echo $var2줄게12*****9

답변2

데이터가 어디에 있는지 불분명합니다. 쉘 변수에 있는 경우

원래 문자열의 처음 두 문자, 대체 문자열 및 원래 문자열의 후행 문자를 사용하여 새 문자열을 생성합니다. 원래 값으로 다시 할당하거나 변수로 사용하십시오. 원본 문자열이 8자보다 짧은지 확인할지 여부를 결정합니다.

mystring="${mystring:0:2}******${mystring:8}"

넌 할 수있어

mystring=${mystring/????????/${mystring{0:2}******}

파일에 있다면

sed 's/\(..\)......../\1********/' file

답변3

예, 당신은 올바른 길을 가고 있습니다.

사용하고 sed싶다면

  • sed에 문자열을 입력합니다.
  • -i플래그 삭제
  • 접미사를 제거 g하면 문자열 하나만 교체됩니다.45678
  • 대체 문자열에 적절한 수의 문자를 추가합니다. 즉,*****

    echo ${mystring}|sed "s/${mystring:3:5}/*****/g"

관련 정보