Ubuntu Python 开源 Android google apache Windows java shell 云计算 Firefox nginx 编程 linux php mysql 微软 centos wordpress 程序员

线上如何替换字符串

 替換是一種最負責的命令方式,他有多種方式。替換有關的一個小技巧是清除文本文件中的M字符。Linux程序員經常會碰到來自Windows環境的源代碼文件,由於Windows環境中對換行符的表述和Linux環境下和解釋器而言是沒有影響的。但是在進行Shell編輯處理的時候卻會出現新的問題。為此,可以使用下面的命令刪除這些新的特殊字符。

 

直接替換文件中的字符串。(此法不用打開文件即可替換字符串,而且可以批量替換多個文件。)
1.perl命令替換,參數含義如下:
-a    自動分隔模式,用空格分隔$_並保存到@F中。相當於@F = split ”。分隔符可以使用-F參數指定
-F    指定-a的分隔符,可以使用正則表達式
-e    執行指定的腳本。
-i<擴展名>   原地替換文件,並將舊文件用指定的擴展名備份。不指定擴展名則不備份。
-l    對輸入內容自動chomp,對輸出內容自動添加換行
-n    自動循環,相當於 while(<>) { 腳本; }
-p    自動循環+自動輸出,相當於 while(<>) { 腳本; print; }
用法示例:
perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
將所有C程序中的foo替換成bar,舊文件備份成.bak

perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak 
將當前文件夾下lishan.txt和lishan.txt.bak中的“shan”都替換為“hua”

perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2 
將每個文件中出現的數值都加一

延伸阅读

评论