1,提高脚本的稳健性能
首先检查所要修改的文件是否存在。如果不存在...视应用场景适配。如果存在,继续脚本的执行。这里主要用到find命令,如果解释器是CSH,可以这样写
set file_name = `find 路径 -name 文件名`
if ( $file_name != "文件名") then
...
endif
如果解释器是BASH,可以参考GNU 的BASH说明文档。
2,修改文本
如果想直接替换文本中的某一行,可以使用sed命令的\c模式,语法如下
sed '/被替换行格式(正则表达式)/' c\ "替换文本" 文件名
如果只想替换一行中的某一段,也是用sed命令,不过使用s模式,语法如下
sed 's/被替换行格式(正则表达式)/' "替换文本" 文件名
3,使用sed处理文本时,最好使用管道连接
如果要处理多行文本,这样写效率太低(偶以前就是这样写的),因为在反复地读写保存文档
sed ... > tmp
cat tmp > 文档
sed ... > tmp
cat tmp > 文档
可以使用管道加换行符
sed ... | \
sed ... | \
最后再一次保存文档