SED 오류: -bash: sed -is/ashu/vishu/ test.txt: 해당 파일이나 디렉터리가 없습니다.

SED 오류: -bash: sed -is/ashu/vishu/ test.txt: 해당 파일이나 디렉터리가 없습니다.

MacBook Air에서 iterm2를 통해 원격 HPC에 액세스하고 있습니다. 위 명령이 잘 작동하는 경우도 있지만 오류가 발생하는 경우도 있습니다. 누구든지 내 오류를 파악하는 데 도움을 줄 수 있나요? 나는 다음 형식을 따릅니다.

sed -i 's/search_string/replace_string/' filename

sed -i 's/ashu/vishu/' test.txt 

답변1

-imacOS의 비표준 옵션은 sed백업 파일을 생성하는 데 사용되는 파일 이름 접미사인 필수 인수를 사용합니다.

macOS에서 내부 편집을 사용하려는 경우아니요백업 파일의 경우 빈 백업 접미사를 사용하세요.

sed -i '' 's/ashu/vishu/' test.txt

그러나 이는 GNU에 대해 잘못된 결과를 제공하며 어떤 구현을 사용하게 되는지 sed질문에서 명확하지 않습니다 .sed

도착하다가지고 다닐 수 있는내부에서 편집하려면 다음 명령을 사용하십시오.

cp test.txt test.txt.tmp &&
sed 's/ashu/vishu/' <test.txt.tmp >test.txt &&
rm -f test.txt.tmp

즉, 원본 파일을 임시 이름으로 복사합니다. 그런 다음 작업이 sed임시 명명된 파일에 적용되어 출력을 원본 파일로 리디렉션합니다. 그런 다음 임시 이름을 삭제하십시오.

위에서 수행한 것처럼 작업 간을 사용하면 &&이전 단계가 성공적으로 완료되지 않는 한 어떤 단계도 실행되지 않습니다.

또한보십시오:

관련 정보