sed 명령을 사용하여 파일을 영구적으로 변경하는 방법은 무엇입니까?

sed 명령을 사용하여 파일을 영구적으로 변경하는 방법은 무엇입니까?

가능합니까? 다음 명령으로 이 작업을 수행할 수 있다는 내용을 어딘가에서 읽었습니다.

sed -e [명령] [파일]

근데 똑같은 일을 하는 것 같아

sed [명령] [파일]

(변경 사항이 저장되지 않았습니다.) sed를 사용하여 이를 수행할 수 있는 방법이 있습니까?

답변1

나는 당신이 찾고 있다고 생각합니다 -i:

   -i[SUFFIX], --in-place[=SUFFIX]

          edit files in place (makes backup if SUFFIX supplied)

예를 들어:

$ cat foo.txt
hello world
$ sed -i 's/o/X/g' foo.txt
$ cat foo.txt
hellX wXrld

접미사를 제공하면 백업 파일이 생성됩니다.

$ ls
foo.txt
$ sed -i.bak 's/o/X/g' foo.txt 
$ ls
foo.txt  foo.txt.bak

입력 파일을 수정하고 원본 파일 데이터가 포함된 백업을 만듭니다.

또한 이는 GNU용이라는 점에 유의하세요 sed.뉘앙스sed서로 다른 구현 간의 형식.

답변2

다음 솔루션은 HPUX(UNIX)용입니다.

1 { rm test1.sh && awk '{gsub("Error", "NO_Error", $0); print}' > test1.sh; } < test1.sh.:

2. perl -pi -e 's/Error/NO_Error/g' test1.sh

삼. sed 's/Error/NO_Error/g' test1.sh | tee test1.sh

답변3

-esed여러 명령을 실행하기 위한 옵션

sed -e 's/linux/unix/' -e 's/os/OS/' file.txt

file.txt로 생각하다

linux os

그러면 O/P는

unix os

-i변경 사항을 영구적으로 저장하는 옵션...

관련 정보