이것이 가능한가? 다음 명령이 수행 할 수있는 곳을 읽었습니다.
sed -e [명령] [파일]
그러나 그것은 단지 같은 일을하는 것처럼 보였다
sed [명령] [파일]
(변경 사항을 저장하지 않았습니다). sed를 사용 하여이 작업을 수행 할 수있는 방법이 있습니까?
답변
나는 당신이 찾고 있다고 생각합니다 -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
있습니다.
답변
이 솔루션은 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
답변
-e
옵션은 여러 sed
명령 을 실행하기위한 것입니다
sed -e 's/linux/unix/' -e 's/os/OS/' file.txt
고려 file.txt
하다
linux os
O / P는
unix os
-i
옵션은 변경 사항을 영구적으로 저장합니다 …