使用linux shell修改文本

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 ... | \

    最后再一次保存文档

你可能感兴趣的:(linux,shell)