.txt 파일에서 문자열을 찾고 바꾸는 방법은 무엇입니까?

.txt 파일에서 문자열을 찾고 바꾸는 방법은 무엇입니까?

일부 자격 증명이 저장된 일부 파일이 있고 쉘 스크립트를 통해 파일을 읽고 현재 자격 증명이 검색된 문자열과 일치하는지 확인하고 해당 위치에서만 바꾸도록 하려고 합니다.

아래 코드를 시도했지만 항상 추가되고 문자열을 바꾸지도 않습니다.

cat $FILESOURCE | sed -e "s/$TEXTTOSEARCH/$TEXTTOREPLACE/g" >> $FILESOURCE

어디

  • FILESOURCE= 읽고 싶은 .txt 파일
  • TEXTTOSEARCH= 검색할 문자열
  • TEXTTOREPLACE= 바꿀 텍스트

참고: 기존 파일을 엉망으로 만들고 싶지 않고 읽기 위해 파일을 열고 검색 문자열이 있는지 확인한 다음 교체하고 그렇지 않은 경우 파일에 아무 작업도 수행하지 않습니다.

답변1

물론 를 사용하고 있기 때문에 추가됩니다 >>. 이는 추가를 의미합니다.

당신 안에는 무엇이 들어있나요 $TEXTTOSEARCH? 문자만 있나요? 아니면 특수 문자가 있나요? 정규식에 특별한 의미를 갖는 특수 문자가 있는 경우 이스케이프해야 제대로 작동합니다. 모든 문자를 나타냅니다 .. \..see 로 바꿔야 합니다 $TEXTTOSEARCH.여기자세한 내용은.

파일을 처리하는 방법에는 여러 가지가 있습니다. 나는 당신이 사용하는 것이 좋습니다

sed -i.bak -e "s/$TEXTTOSEARCH/$TEXTTOREPLACE/g" $FILESOURCE

이 방법으로 sed는 파일의 텍스트를 바꾸고 .bak확장자로 백업합니다. 다른 방법을 원하시면 더 자세한 내용을 기재해주세요. 기존 파일을 엉망으로 만들고 싶지 않고 해당 파일의 텍스트를 바꾸고 싶기 때문에 귀하의 질문이 명확하지 않습니까?

관련 정보