日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Perl一行式:文本编解码、替换

發布時間:2025/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Perl一行式:文本编解码、替换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

perl一行式程序系列文章:Perl一行式


文本大小寫轉換

全部字符轉換成大寫或小寫,有幾種方式:

# 轉大寫 $ 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 <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的所有行并進行反轉。

也可以使用下面這種方式,但如果文件結尾不正確(缺少eof),可能會卡住:

$ perl -e 'print reverse <>' file.log

ROT13字符映射

Perl中可使用tr///或y///進行字符一一映射的替換。它們和unix下的tr命令作用類似。

$ perl -le '$string="hello";$string =~ y/a-zA-Z/N-Za-mA-Mn-z/;print $string' URYYb

BASE64編碼、解碼

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($_)' 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("<html>")' $ perl -MHTML::Entities -le 'print decode_entities("&lt;html&gt;")'

轉載于:https://www.cnblogs.com/f-ck-need-u/p/10243772.html

總結

以上是生活随笔為你收集整理的Perl一行式:文本编解码、替换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。