문자열을 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"