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

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

源文件:

[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}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 5,473评论 0 0
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 13,481评论 3 53
  • awk命令的基本使用 [root@shellscript ~]# head -n 3 /etc/passwd | ...
    古寒飞阅读 4,685评论 0 2
  • 早上9:40分,骑车去一家本土网红服装店兼职,9:55分到店,未开门,看着来往车辆行人,等待着上班,心情是平静中稍...
    芥末末日阅读 3,567评论 0 0
  • 高考结束,有人欢喜有人忧。在很多人的观念中,金榜题名,意味着财富;名落孙山,与之相反,并且考生不仅懊恼,更要承受他...
    晓晓话语阅读 2,915评论 4 1

友情链接更多精彩内容