Perl 일행: 텍스트 코딩, 바꾸기

3303 단어
퍼블릭 라인 프로그램 시리즈: 퍼블릭 라인
텍스트 대소문자 변환
모든 문자를 대문자 또는 소문자로 변환하는 방법은 다음과 같습니다.
#    
$ perl -nle 'print uc' file.log
$ perl -ple '$_ = uc' file.log
$ perl -nle 'print "\U$_"' file.log

#    
$ perl -nle 'print lc' file.log
$ perl -ple '$_ = lc' file.log
$ perl -nle 'print "\L$_"' file.log

각 행의 이니셜 대/소문자 변환:
$ perl -nle 'print lcfirst' file.log
$ perl -lpe '$_ = ucfirst' file.log
$ perl -lne 'print \u\L$_' file.log

단어의 첫 글자 대문자, 기타 소문자:
$ perl -ple 's/(\w+)/\u$1/g' file.log

접두어, 접미어 공백 자르기
접두사 공백을 없애는 방법:
$ perl -ple 's/^\s+//' file.log

접미사 공백을 제거하는 방법:
$ perl -lpe 's/\s+$//' file.log

접두사 및 접두사 공백을 모두 제거합니다.
$ perl -lpe 's/^\s+|\s+$//' file.log

모든 단락을 역순으로 내보내기
$ perl -00 -e 'print reverse <>' file.log

앞의 글은 연속된 빈 줄을 압축하여 설명한 적이 있는데 -00는 단락에 따라 읽고 연속된 빈 줄을 압축한 것이다.reverse <>에서 Reverse의 조작 대상은 하나의 목록을 기대하기 때문에 <>는 전체 파일을 한꺼번에 읽고 단락에 따라 읽는다. 각 단락은 목록의 요소이다.마지막으로 Reverse 함수는 이 목록을 역순으로 하고 print에 의해 출력됩니다.
모든 행을 역순으로 내보내기
$ perl -e 'print reverse ' file.log
sync   x 4 65534 sync   /bin      /bin/sync
sys    x 3     3 sys    /dev      /usr/sbin/nologin
bin    x 2     2 bin    /bin      /usr/sbin/nologin
daemon x 1     1 daemon /usr/sbin /usr/sbin/nologin
root   x 0     0 root   /root     /bin/bash

여기reverse 는 파일을 한꺼번에 읽는 것을 의미합니다.log의 모든 줄을 반전합니다.
다음과 같은 방법을 사용할 수도 있지만 파일의 끝이 올바르지 않으면 끊길 수 있습니다.
$ perl -e 'print reverse <>' file.log

ROT13 문자 매핑
Perl에서 tr/// 또는 y/// 문자를 일일이 비추는 교체를 사용할 수 있습니다.그것들은 유닉스에서의tr 명령과 유사합니다.
$ perl -le '$string="hello";$string =~ y/a-zA-Z/N-Za-mA-Mn-z/;print $string'
URYYb

BASE64 인코딩, 디코딩MIME::Base64 모듈은 베이스64 인코딩, 디코딩 방법을 제공합니다.
인코딩:
$ perl -MMIME::Base64 -e 'print encode_base64("coding")'
Y29kaW5n

디코딩:
$ perl -MMIME::Base64 -le 'print decode_base64("Y29kaW5n")'
coding

인코딩 파일:
$ perl -MMIME::Base64 -0777 -ne '
    print encode_base64($_)' file.log

디코딩 파일:
$ perl -MMIME::Base64 -0777 -ne 'print decode_base64($_)' file

URL 이스케이프URI::Escape 모듈을 사용하여 URL 이스케이프를 수행할 수 있습니다.모듈을 추가로 설치해야 합니다cpan URI::Escape.
$ perl -MURI::Escape -le 'print uri_escape("http://example.com")'
http%3A%2F%2Fexample.com 

반전 의미:
$ perl -MURI::Escape -le '
    print uri_unescape("http%3A%2F%2Fexample.com")'
http://example.com

HTML 인코딩, 디코딩
먼저 추가 HTML 형식의 코딩 모듈cpan HTML::Entities을 설치합니다.
$ perl -MHTML::Entities -le 'print encode_entities("")'
$ perl -MHTML::Entities -le 'print decode_entities("<html>")'

좋은 웹페이지 즐겨찾기