linux 小技巧(查找替換文件中的ascii編碼字符)


這里紀錄一些linux下用到的小技巧,以免遺忘

在linux中經常碰見各種文件處理。最常用的就是替換文件中的某些字符。常見字符替換還是很容易完成。但是有些不可見字符以及ascii編碼字符等等都無法直接使用常見方法替換。這里可以用下面的幾種方法進行處理

1.sed 方法

sed -i 's/$(echo -ne "\001")/|/g'  file  #這里就可以通過這種方式直接使用ascii編碼來替換不可見的字符。echo "\001"這種方法可以打印出對應的ascii編碼
sed -i ".bak" 's/$(echo -ne "\002")/!/g' file #這里跟上面一樣,區別在於有些系統的sed -i參數需要一個備份后綴,會將源文件備份成指定的后綴

2.perl one line 方法

perl -lane '$F[0]=~s/0\x01/|/g'  file  #這樣就可以把文件里對應的001的ascii編碼替換成別的字符。這些寫成0\x01即可(實際上就是0x01的表述,x被轉義)

 3.awk 方法

awk '{c=sprintf("%c",1);gsub(/c/,"#",$0);print $0}' file #這種方法就能輕松替換指定的特殊字符。sprintf 能把數字轉換成對應的ascii字符。所以可以轉換一些不可見,無法直接輸入的字符

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM