수학 방정식의 일부를 나타내는 선을 바꾸고 싶습니다.
f(x,z,time,temp)=-(2.0)/(exp(128*((x-2.5*time)*(x-2.5*time)+(z-0.2)*(z-0.2))))+(
위와 유사한 새로운 것으로. 새 줄과 이전 줄은 모두 bash 변수에 저장됩니다.
주된 문제는 수식에서 사용되지 않는 구분자 특수 문자로 사용하더라도 bash 모드에서 적절한 검색 및 바꾸기를 허용하지 않는 특수 문자로 수학 방정식이 가득 차 있다는 것입니다.
나는 사용했다
sed -n "s|$OLD|$NEW|g" restart.k
과
sed -i "s|$OLD|$NEW|g" restart.k
하지만 항상 잘못된 결과를 얻습니다. 이 문제를 해결할 아이디어가 있습니까?
*
여기에 특별한 패턴 만 sed
있으므로 이스케이프하고 평소와 같이 교체하십시오.
sed "s:$(sed 's:[*]:\\&:g' <<<"$old"):$new:" infile
실제 샘플에 특수 문자가 더 있으면 대괄호 안에 추가해야합니다 []
. 다음과 같은 몇 가지 예외가 있습니다.
^
문자 인 경우 : []
첫 번째 문자가 아닌 아무 곳에 나 배치 할 수 있습니다 . 문자 인
경우 ]
: 첫 번째 문자 여야합니다. 문자 인
경우 -
: 마지막 문자 여야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다