I have a Visual Studio 프로젝트가 지역별로. 코드 파일을 원격 서버에 구축해야 한다. 문제가 있는 유일한 우얼스타이 컨테인먼트하는 직접.
하지만, s # 39 이것은 그러니까말이야 아닌 단순 솔루션 it& 꽤 많은 시간을 절약할 수 있는 게. 나는 총 10 개 미만인 문장열 교체할 수 있다. 파일을 검사할 수 있는 것은 총 30. ~
예를 들어 내 상황을 설명하는 것은 다음과 같습니다.
sed -f replace.txt < a.txt > b.txt
레프리스.t스트 포함하는 모든 문장열:
s/?page=one&/pageone/g
s/?page=two&/pagetwo/g
s/?page=three&/pagethree/g
a.t스트:
?page=one&
?page=two&
?page=three&
내가 내 컨텐츠를 후 발타스트 실행하십시오 sed 명령:
pageone
pagetwo
pagethree
내가 원하는 것이 무엇인지 발타스트 있습니다.
/page/one
/page/two
/page/three
다른 사용자의 검색 / 대체 사용할 수 있는 가장 쉬운 방법은 약간만이라도 구분 선, 예:
s:?page=one&:pageone:g
s/\//foo/
바꿀 수 있는 '/' 와 'foo'. # 39 you& 사용할 수 있는 경우, d, t know what 문자 # 39 이스케이프된 백슬래시 don& 교체품 문장열 발생할 수도 있다 (예를 들어 com/go/4e6b330a_kr 쉘로 경우).
Sed 는 대체될 수 있는 시스템을 개발, 나는 텍스트 문자열을 사용자의 입력 변수 및 저장되어 있는 전달된 sed.
앞서 언급한 것처럼 이 게시물에서 구체화하십시오 포함된 명령 블록을 사용하는 경우, sed map_layer 실제 구분 - 그럼 sed 종료되는 sed 에 구문 오류입니다. 다음 예제를 살펴보십시오.
이 작업:
$ VALUE=12345
$ echo "MyVar=%DEF_VALUE%" | sed -e s/%DEF_VALUE%/${VALUE}/g
MyVar=12345
이 분리:
$ VALUE=12345/6
$ echo "MyVar=%DEF_VALUE%" | sed -e s/%DEF_VALUE%/${VALUE}/g
sed: -e expression #1, char 21: unknown option to `s'
저의 경우는 as I 교체하십니까 기본값입니다 구분 없는 강력한 솔루션을 사용하는 사용자가 특정 문자를 보고 싶지 않다고 제한값 입국을 구분 기호로 sed (예를 들어 /" ";).
그러나 모든 항목을 입력 문자열 탈출이라니요 구분 문제를 해결할 수 있을 것 "이라고 말했다. 구분 문자 입력 문자열 아래에 포지셔닝합니다 전에 이미 이 솔루션을 통해 이를 체계적으로 탈출이라니요 sed 분석되었다. Sed 자체를 교체품 안전하게 사용할 수 있는 등 탈출이라니요 교체품을 구현되며 이 경우에도 포함된 입력 문자열 입력 문자열 이후 구분 - 이것은 속하지 않는 sed 명령 블록을:
$ VALUE=$(echo ${VALUE} | sed -e "s#/#\\\/#g")
$ echo "MyVar=%DEF_VALUE%" | sed -e s/%DEF_VALUE%/${VALUE}/g
MyVar=12345/6
나는 이 변환되었습니다 함수 연결해 사용할 수 있는 다양한 스크립트에만:
escapeForwardSlashes() {
# Validate parameters
if [ -z "$1" ]
then
echo -e "Error - no parameter specified!"
return 1
fi
# Perform replacement
echo ${1} | sed -e "s#/#\\\/#g"
return 0
}
이 노선은 노력해야 할 단축시킵니다 3 (예:
sed -r 's#\?(page)=([^&]*)&#/\1/\2#g' a.txt
테스트 본인의 예 (a.t스트):
kent$ echo "?page=one&
?page=two&
?page=three&"|sed -r 's#\?(page)=([^&]*)&#/\1/\2#g'
/page/one
/page/two
/page/three
<! - 모든 언어: > 랑 sh -;
'sed "는 [ strea edito] [남자] 표준 스트림이 전송하십시오 사용할 수 있다는 점에서' ' (파이프) (stdin 및 stdout 특별히)' 와 'sed 변경하십시오 프로그래밍 방식으로 그들을 통해 즉석에서 userdic. 핸디 도구에서는 정보기술 (it) 의 유닉스 철학 전통인건지. 하지만, 고쳐주렴 직접 파일을 사용하여 편집할 수 있는 '-i' 매개변수입니다 아래에 언급된.
sed -i -e 's/few/asd/g' hello.txt
>. 몇 안 되는 이 용감했어 _ >. Asd 는 이 용감했어
/ g ',' 의 약자로, 즉, 이렇게 하려면 " global" 전체에 대해 할말이다 끕니까 두면 '/ g' (의 / 몇 / asd/ 필요가 없고, 항상 '무엇이든 슬래시 (3) 과 같은 줄에 몇 몇' 가 '두 번 바뀌고, 오직 제 1' '' asd ':
>. 몇 몇 명, 여성, 용감했어 _ >. Asd 는 남성, 여성, 용감했어 몇
이 때문에 어떤 상황에서는 변경하는 등 특수 문자를 펼쳤다) 에서 선 (예를 들어, 교체 보다 큼 심볼에는 일부 사용하는 사람들이 쿼트에 이전 자료를 전자_메일 스래드입니다 수평 탭 키프레임에서 돈에 손을 대지 않고 있는 동안 말을 대수적 비항등 늦게 라인) 이지만, 그 예로 어디든요 '에 지정한' 이 있는지 몇 테스트타사의 교체해야 하는 '/ g'.
(Flag) 는 다음과 같은 두 가지 옵션을 하나로 통합, 'ie':
'-i' 옵션을 사용하여 파일에 대한 헬o.t스트 배치하십시오 편집하십시오 i * ''.
참고: '-I' e '를 사용할 수 있는 중요한 it& # 39 의 검색 / 대체. 만약 당신이 그렇게 만든 ',' ie # 39, & # 39 문자로 모든 파일을 백업하도록 e&. 추가됩니다.
[남자]: https://www.gnu.org/software/sed/manual/sed.txt " manpage";