MacBook Air에서 iterm2를 통해 원격 HPC에 액세스하고 있습니다. 위 명령이 잘 작동하는 경우도 있지만 오류가 발생하는 경우도 있습니다. 누구든지 내 오류를 파악하는 데 도움을 줄 수 있나요? 나는 다음 형식을 따릅니다.
sed -i 's/search_string/replace_string/' filename
sed -i 's/ashu/vishu/' test.txt
답변1
-i
macOS의 비표준 옵션은 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
임시 명명된 파일에 적용되어 출력을 원본 파일로 리디렉션합니다. 그런 다음 임시 이름을 삭제하십시오.
위에서 수행한 것처럼 작업 간을 사용하면 &&
이전 단계가 성공적으로 완료되지 않는 한 어떤 단계도 실행되지 않습니다.
또한보십시오: