파일이 있어요foo.txt
hello world
first line to change
second line to change
foo.txt
나는 그것을 읽기로 변경하는 perl one-liner를 작성하고 싶습니다.
hello world
this is
my new text
나는 노력했다
perl -p -i -e 's/ first line to change\n second line to change/ this is\n my new text/g' foo.txt
하지만 이 스크립트는 파일에 아무 작업도 수행하지 않습니다. 내 한 줄짜리에 문제가 있나요?
답변1
기본적으로 perl
입력은 한 번에 한 줄씩 읽혀지므로 정규식은 절대 일치하지 않습니다. 여러 줄 입력을 사용하려면 두 가지 옵션이 있습니다.
단락 모드 활성화:
perl -i.bak -00pe ...
또는 전체 파일을 삼키십시오.
perl -i.bak -0777pe ...
(위의 값은 관례상 전체 파일을 차지 -0400
하게 됩니다 )perl
-0777