sed를 사용하여 텍스트 파일의 특정 줄의 일부 부분을 편집하고 변경 사항을 원본 파일에 저장하려고 합니다. 좋아, 이제 이것이 sed가 직접 작동하는 방식이 아니라는 것을 이해합니다. 하지만 스크립트에서 sed를 사용하여 변수 내용이 포함된 줄의 일부를 편집하려면 어떻게 해야 할까요? 저는 sed를 사용하여 전체 줄을 변경하거나 줄을 트리거로 사용하여 새 파일을 자르고 삽입했습니다. 하지만 이건 다릅니다 :) 제 생각엔 제가 필요한 건
sed '/baz/s/foo/bar/g'
sed '/beginning of line/s/static text/new static text/g'
이렇게 하면 올바른 출력이 제공되지만 소스 파일에 어떻게 저장합니까? sed가 Stoud로 출력한다는 것을 알고 있지만 ">> outpufile"을 추가하면 오류 메시지가 표시됩니다.
sed: -e Ausdruck #1, Zeichen 55: Unbekannte Option für `s'
정적 텍스트와 새로운 정적 텍스트 사이에는 수시로 변경되는 내용이 있으므로
sed -n '/static text/new static text/,$p' tmp >> source
소스 콘텐츠가 변경되지 않은 경우에만 유효합니다.
어떤 제안이 있으십니까?
그레츠
답변1
micha@linux-micha: /tmp
$ echo 'alpha bravo charlie' > blah.txt
micha@linux-micha: /tmp
$ cat blah.txt
alpha bravo charlie
micha@linux-micha: /tmp
$ sed -i 's/bravo/delta/' blah.txt
micha@linux-micha: /tmp
$ cat blah.txt
alpha delta charlie