Perl一行式:文本编解码、替换
perl一行式程序系列文章:Perl一行式
文本大小寫轉(zhuǎn)換
全部字符轉(zhuǎn)換成大寫或小寫,有幾種方式:
# 轉(zhuǎn)大寫 $ perl -nle 'print uc' file.log $ perl -ple '$_ = uc' file.log $ perl -nle 'print "\U$_"' file.log# 轉(zhuǎn)小寫 $ perl -nle 'print lc' file.log $ perl -ple '$_ = lc' file.log $ perl -nle 'print "\L$_"' file.log每行首字母大小寫轉(zhuǎn)換:
$ 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同時(shí)去掉前綴和后綴空白:
$ perl -lpe 's/^\s+|\s+$//' file.log反序輸出所有段落
$ perl -00 -e 'print reverse <>' file.log前面的文章壓縮連續(xù)的空行解釋過,-00是按段落讀取且壓縮連續(xù)的空行。
reverse <>中reverse的操作對(duì)象期待的是一個(gè)列表,所以<>會(huì)一次性讀取整個(gè)文件且按照段落讀取,每個(gè)段落是列表中的一個(gè)元素。最后reverse函數(shù)反序這個(gè)列表,然后被print輸出。
反序輸出所有行
$ perl -e 'print reverse <ARGV>' 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 <ARGV>表示一次性讀取file.log的所有行并進(jìn)行反轉(zhuǎn)。
也可以使用下面這種方式,但如果文件結(jié)尾不正確(缺少eof),可能會(huì)卡住:
$ perl -e 'print reverse <>' file.logROT13字符映射
Perl中可使用tr///或y///進(jìn)行字符一一映射的替換。它們和unix下的tr命令作用類似。
$ perl -le '$string="hello";$string =~ y/a-zA-Z/N-Za-mA-Mn-z/;print $string' URYYbBASE64編碼、解碼
MIME::Base64模塊提供了base64編碼、解碼的方法。
編碼:
$ 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($_)' fileURL轉(zhuǎn)義
使用URI::Escape模塊即可進(jìn)行URL轉(zhuǎn)義。該模塊需要額外安裝cpan URI::Escape。
$ perl -MURI::Escape -le 'print uri_escape("http://example.com")' http%3A%2F%2Fexample.com反轉(zhuǎn)義:
$ perl -MURI::Escape -le 'print uri_unescape("http%3A%2F%2Fexample.com")' http://example.comHTML編碼、解碼
先安裝額外HTML格式的編解碼模塊cpan HTML::Entities。
$ perl -MHTML::Entities -le 'print encode_entities("<html>")' $ perl -MHTML::Entities -le 'print decode_entities("<html>")'轉(zhuǎn)載于:https://www.cnblogs.com/f-ck-need-u/p/10243772.html
總結(jié)
以上是生活随笔為你收集整理的Perl一行式:文本编解码、替换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript学习篇(3)
- 下一篇: angluar bulid 的时候报错