這里紀錄一些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字符。所以可以轉換一些不可見,無法直接輸入的字符