shell 文件中使用sed/cut/grep命令和变量
来源:互联网 发布:网络直播你有什么看法 编辑:程序博客网 时间:2024/05/16 19:22
需求:
从 all-test-suite.xml 文件中查询出对应的配置信息,然后将查询出的信息替换至suite.xml文件中
遇到的问题:
- sed命令中包含变量,执行无效果:
问题现象:在命令行窗口执行sed -n '/123/p' file.xml
没问题,但是写入shell文件中,用sh执行时并无效果。
根本原因:在sed命令中使用了变量,导致失败。
解决方法:在sed命令中的变量前后加上单引号,如sed -n '/'$CASE_NUM'/p' $ALL_SUITE
或参考这个文章:在sed中引入shell变量的四种方法
代码:
#!/bin/sh# 判断输入参数是否为空if [ "$1" = "" ];then echo "Need print case number!" exit 1fiALL_SUITE=all-test-suite.xmlSUITE_FILE=suite.xmlCASE_NUM=${1}# 从all-test-suite.xml文件中查找需要的信息CASE_NAME=`sed -n '/'$CASE_NUM'/p' $ALL_SUITE | sed -n '1p' | cut -d '"' -f 2`CLASS_NAME=`sed -n '/'$CASE_NUM'/p' $ALL_SUITE | sed -n '2p' | cut -d '"' -f 2`if [ "$CASE_NAME" = "" ];then echo "Can not find case number from ${ALL_SUITE}" exit 1fi# 从suite.xml文件中查找需要替换的字符串并替换REPLACE_CASE_NAME=`grep 'test name=' $SUITE_FILE | cut -d '"' -f 2`sed -i 's/'${REPLACE_CASE_NAME}'/'${CASE_NAME}'/g' $SUITE_FILEREPLACE_CLASS_NAME=`grep 'class name=' $SUITE_FILE | cut -d '"' -f 2`sed -i 's/'${REPLACE_CLASS_NAME}'/'${CLASS_NAME}'/g' $SUITE_FILEcat $SUITE_FILE
阅读全文
0 0
- shell 文件中使用sed/cut/grep命令和变量
- sed和awk中使用shell变量
- sed和awk中使用shell变量
- sed和awk中使用shell变量
- shell 中 grep、sed、awk 命令
- shell 中 grep、sed、awk 命令
- shell 中 grep、sed、awk 命令
- shell命令之awk、sed和grep
- shell中的grep,awk,sed,cut,sort
- linux之 grep cut sed tr等 简介和使用
- sed、cut和awk命令的使用
- linux命令之sed, awk, grep, cut
- sed,awk,grep,cut命令总结
- 文件操作的常用命令 -- grep, cut, sed
- liux grep和sed命令的使用
- liux grep和sed命令的使用
- shell中向sed命令传递变量
- shell中向sed命令传递变量
- 哈萨比斯首次解读AlphaZero竟被当场diss,他起身当面回击说…
- vue 回到顶部 组件
- Java 进度条控件的使用
- 青否云如何创建数据表?
- oolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
- shell 文件中使用sed/cut/grep命令和变量
- MIT联手IBM发布超大数据集:100多万短视频,多维度标注
- 再谈“炼金术”:可以使用不严谨的方法,但拒绝不严谨的评估方法
- 时间复杂度与空间复杂度分析(递归与非递归比较)
- 百度DuerOS与高通合推手机语音交互解决方案,谁会欢喜谁要愁?
- Android-----崩溃的log日志捕捉
- 你应该掌握的“百度一下”技巧
- 视频编码基础
- html让标签显示在屏幕正中央