这里纪录一些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字符。所以可以转换一些不可见,无法直接输入的字符