UNIX
에 간단한 문자열 조작을 수행하는 방법 오랜 시간 동안 검색하고 있습니다
:
theStr='...............'
를 내가 5 번째 문자를 변경해야 A로 어떻게 할 수 있습니까?
다음, 처음 네 문자를 C#
에서 우아한인지 모르겠어요이 theStr[4] = 'A'; // Zero based index.
UNIX
에 간단한 문자열 조작을 수행하는 방법 오랜 시간 동안 검색하고 있습니다
:
theStr='...............'
를 내가 5 번째 문자를 변경해야 A로 어떻게 할 수 있습니까?
다음, 처음 네 문자를 C#
에서 우아한인지 모르겠어요이 theStr[4] = 'A'; // Zero based index.
당신은 sed
, 스트림 라인 편집기를 사용하여이를 달성 할 수
echo $theStr | sed s/./A/5
먼저 당신이 파이프 $ theStr의 출력이 나오지하기 위해, A로 다섯 번째 문자를 대체
같은 일, 또는 당신이 필요로하는 배쉬의 버전 만
theStr="${theStr:0:4}A${theStr:5}"
첫 번째 부분은 반환 문자 'A'와 6 일 여기
a="............"
b="${a:0:4}A${a:5}"
echo ${b}
로 시작하는 모든 문자는 일에 tutorial 정말 좋은 일입니다 반지 조작.
[email protected]:~$ echo 'replace A please' | sed 's/^\(.\{8\}\).\(.*\)/\1B\2/'
replace B please
위의 sed 명령은 8th 문자 을 대체합니다. 따라서은 무엇인지 지정하지 않으므로 어떤 ch aracter는 교체되어야한다. 당신이 위의 코드에서
그냥 당신이로 교체하고 싶은 캐릭터와
그래서 특정 예를 들어이된다 :
[email protected]:~$ echo '...............' | sed 's/^\(.\{4\}\).\(.*\)/\1A\2/'
....A..........
대신 B의 문자열을 제공하여 문자열을 가진 대체 할 수 있음을 언급하거나 B가 어디 있는지 아무것도 제공하지하여 삭제하지 않기 (\1\2
)
+1. 실제로 sed는 올바른 도구입니다. 부가 메모에서이 특정 버전은 입력 문자열이 '.' – CodeExpress
아니요, 실제로'.'는 문자 "도트"를 나타내지 않지만 모든 문자와 일치합니다. 그 점과 일치시키고 싶으면'\. '이라고 쓸 것입니다. – jurgemaister
하하, 내가 그것을 썼을 때 전혀 몰랐다. 이것은 완벽합니다! – CodeExpress