'Perl One-Liners' 책 읽고 첫장의 예제 몇개를
Cygwin(윈도우에서 작동하는 리눅스 에뮬레이터)에서 테스트. 제대로 작동한다. 윈도우용 펄인 Strawberry
Perl에서도 테스트. 역시 잘 작동.
* 파일속 내용을 찾아 바꾸는 프로그램:
perl -p -i.bak -e 's/before/after/g' test.txt
- test.txt 파일 속 모든 문장 중에서 before라는 단어를 after라는 단어로 바꾼뒤 저장하고 원래의
파일은 .bak 확장자를 붙여 백업용으로 남겨둔다. test.txt 위치에 test1.txt test2.txt
등으로 넣으면 여러개의 파일들에 동일한 작업을 할 수도 있다.
-p: (print) 디스플레이 하기.
-i: (in place) 파일로 저장하고 백업은 기본적으로 .bak 확장자를 붙여 남겨두는데 확실히 하기위해
뒤에 .bak을 붙여줬다. .b 라고 뒤에 붙이면 백업 파일의 확장자가 .b로 된다.
-e: (excute) 뒤의 ' ' 사이에 들어간 펄 명령어를 실행하기.(윈도우의 경우 " ")
s/A/B: A란 내용을 찾아 B로 바꾸기
/g: (global) 파일내 모든 행에 걸쳐 실행.
* 파일속 문장 중 중복되는 문장을 찾아 디스플레이하는 프로그램:
perl -ne 'print if $a{$_}++' test.txt
- test.txt 파일 속 모든 문장 중 중복되는 문장이 있을 경우 해당 문장을 보여준다.
|