美文网首页
sed 、awk 项目中的shell脚本使用

sed 、awk 项目中的shell脚本使用

作者: 冰舞one | 来源:发表于2018-12-11 11:08 被阅读0次

    需求:把查询中的相关进程名称改成中文,并不修改源文件内容

    源文件:

    [root@localhost scripts]# cat en_source.txt

    system               [ OK ]

    Monitor              [ OK ]

    Location            [ OK ]

    Apple                 [ OK ]

    orange               [ NO ]

    Automatic         [ OK ]

    [root@localhost scripts]#

    最后实现的结果

    [root@localhost scripts]# sh en_ch.sh

    系统                [ 正确 ]

    监控                [ 正确 ]

    定位                [ 正确 ]

    苹果                [ 正确 ]

    橙子                [ 错误 ]

    自动测试        [ 正确 ]

    [root@localhost scripts]#

    模拟创建项目中相应的文件

    文件模拟的是查看进程状态生产的文件/servers/scripts/en_source.txt  

    进程中文意思的文件:/servers/scripts/ch_file.txt

    [root@localhost scripts]# cat ch_file.txt

    系统

    监控

    定位

    苹果

    橙子

    自动测试

    脚本实现;

    相关知识:awk 的条件判断,取列;awk 显示行号awk '{print NF}' 文件名;

    sed 替换 sed -i -r "s###g" 

    文件是否存在判断 [ -f  ${SourcesFile} -a ${CHINA} ] || echo "${SourcesFile} or ${CHINA} file does not exist!"

    shell 语言for循环语句 实现sed 的循环替换

    fornin $(awk '{print NR}' ${FileStatus})

    do

    CPART="${n}s#(.*)#`sed -n ${n}p ${CHINA}`        `sed -n ${n}p ${FileStatus}` #g"

    sed  -i -r "${CPART}" ${ATSPATH}

    done

    shell 脚本:

    [root@localhost scripts]# cat en_ch.sh

    #!/bin/bash

    #定义的文件所在路径变量

    SourceFile=/servers/scripts/en_source.txt

    CHINA=/servers/scripts/ch_file.txt

    FileStatus=/servers/scripts/file_status.txt

    ATSPATH=/servers/scripts/Atsflie.txt

    #判断文件是否存在;不存在给出提示

    [ -f  ${SourcesFile} -a ${CHINA} ] || echo "${SourcesFile} or ${CHINA} file does not exist!"

    #连续执行命令

    cat ${SourceFile}>${ATSPATH} && \

    awk '{if($3 == "NO"){$3="错误"}else if($3 == "OK"){$3="正确"} print $2,$3,$4}' ${SourceFile}>${FileStatus}

    for n in $(awk '{print NR}' ${FileStatus})

    do

    CPART="${n}s#(.*)#`sed -n ${n}p ${CHINA}`        `sed -n ${n}p ${FileStatus}` #g"

    sed  -i -r "${CPART}" ${ATSPATH}

    done

    cat ${ATSPATH}

    相关文章

      网友评论

          本文标题:sed 、awk 项目中的shell脚本使用

          本文链接:https://www.haomeiwen.com/subject/wozqhqtx.html