OS X에서 'sed' 명령과 'find' 명령을 함께 사용할 때 오류 발생: "invalid code"
현재 클라이언트에 CVS를 사용하도록 강제되어 리모트레포의 주소가 변경되었습니다.로컬 코드의 리모트주소를 변경하는 유일한 방법은 재귀 검색과 치환입니다.
하지만 sed 명령어를 사용하면 다음과 같이 작동합니다.
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
모든 파일에 오류가 표시됩니다.
sed: 1: ".//file/path ...": invalid command code .
SED 경기/교체 기간에서 벗어나려고 노력했지만 아무 것도 해결되지 않았습니다.
OS X 를 사용하고 있는 경우는, 이것은 sed 커맨드와는 무관할 가능성이 있습니다.의 OSX 버전sed
,그-i
옵션에는 다음이 필요합니다.extension
명령어를 실제로 해석할 수 있도록 합니다.extension
파일 경로가 명령 코드로 해석됩니다.
를 추가해 보겠습니다.-e
명백하게 논하고 양보하는 모습''
의 논거로서-i
:
find ./ -type f -exec sed -i '' -e "s/192.168.20.1/new.domain.com/" {} \;
이것 좀 봐.
OS X 에서는, 빈약한 빌트인 SED 를 적절히 사용할 수 있는 것은 아무것도 없습니다.해결책은 다음과 같습니다.
brew install gnu-sed
그리고 sed 대신 gsed를 사용하면 예상대로 작동합니다.
당신은 단순히 에 대한 논거를 제공하는 것을 잊었다.-i
.바꾸기만 하면 된다.-i
로.-i ''
.
물론 이는 파일 백업을 원하지 않는다는 것을 의미합니다. 그렇지 않으면 다음과 같은 확장 옵션을 제공합니다.-i .bak
.
확장자를 -i 플래그에 추가하기만 하면 됩니다.기본적으로 원래 파일과 함께 백업 파일이 생성됩니다.
sed -i.bakup 's/linenumber/number/' ~/.vimrc
sed는 오류 없이 실행됩니다.
OP의 경우는 아니지만, 그것은 나를 위한 것이었고 다른 누군가를 도울 수 있었다.
사용하시는 경우'
regex를 동봉하려면'
성격.워드프로세싱에서 대본을 복사해서 붙여넣고 있었는데 붙여넣고 있었어요.'
~하듯이’
배쉬로
아마도 당신의 새로운 도메인은/
만약 그렇다면, 다음 세퍼레이터를 사용해 보세요./
에sed
,예.#
,,
기타.
find ./ -type f -exec sed -i 's#192.168.20.1#new.domain.com#' {} \;
동봉하는 것도 좋을 것 같습니다.s///
변수 치환 또는 기타 예기치 않은 동작을 피하기 위해 큰따옴표가 아닌 작은따옴표로 표시함
언급URL : https://stackoverflow.com/questions/19456518/error-when-using-sed-with-find-command-on-os-x-invalid-command-code
'source' 카테고리의 다른 글
C#의 문자열 앞에 있는 @는 무엇입니까? (0) | 2023.04.14 |
---|---|
Excel의 큰 숫자에 대한 10진수에서 2진수로 변환 (0) | 2023.04.14 |
SQL Server Express Edition에서 작업을 생성하는 방법 (0) | 2023.04.14 |
WPF List View를 사용하여 항목을 수평으로 배열하시겠습니까? (0) | 2023.04.14 |
이벤트 소스 등록 없이 Windows 응용 프로그램 이벤트 로그에 쓰기 (0) | 2023.04.09 |