水手博客

Wealthy is ability to share.


« Windows XP无法启动,反复重启的解决办法如何修改Windows、AIX等操作系统的TCP/IP参数 »

用awk和sed实现批量替换文件中的控制字符

  有时候会遇到这样一个问题,就是把文件ftp上传到AIX系统以后,发现文件中包含了一些特殊的控制字符,例如最常见的^M。如果文件只是一个两个,那直接用vi打开文件,把文件中的控制字符替换掉就可以了。但如果文件数量很多的话,这样一个个去改就会变得很麻烦。这时候我们可以通过awk和sed实现对多个文件的批量处理,具体步骤如下:

1)假设需要修改的文件放在/tmp/test1目录下,然后新建一个目录,如/tmp/test2目录,这个目录用来存放修改后的文件。
2)在/tmp/test1目录下运行命令:
ls -1 * | awk '{print "sed 's/^M//g' "$1" >/tmp/test2/"$1}' > sed.sh
其中^M的输入是用Ctrl + v,然后Ctrl + m生成的。
生成的脚本文件如下所示:

sed s/^M//g test.txt >/tmp/test2/test.txt
sed s/^M//g test1.txt >/tmp/test2/test1.txt
sed s/^M//g test2.txt >/tmp/test2/test2.txt

3)执行生成的脚本文件:
./sed.sh
就会在/tmp/test2目录下生成去掉控制字符^M后的文件。

一些其他的方法可以参考以下的文章:
1)用sed批量替换文件中的字符
2)批量修改文件
3)sed的in-place edit选项,和RTFM
 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新留言

最近发表

AD

Powered By Z-Blog 1.6 Final Build 60802

Copyright 2005-2006 BosunLand.com. Some Rights Reserved.