shell脚本两个文件关键行合并 |
您所在的位置:网站首页 › 如果将两个文件合并 › shell脚本两个文件关键行合并 |
shell scripts两个文件关键行合并
1.写作意图2.shell按行读取文件信息3.提取每行第3列的信息4.在另一个文件B中查找关键字key5.字符串非空判断输出6.关键字key所在的文件A的行内容与所在的文件B行内容合并显示
1.写作意图
有两个文件,分别是文件A和文件B。指定A文件的某些行,并提取关键字key,然后在B文件中查找关键字key所在的行,并把A文件中关键字key所在的行与B文件关键字key所在的行合并起来写到文件C中.这样的小功能如果用C/C++写将变得复杂,那么有没有什么简介的方式呢?答案是肯定的.Linux下的shell scripts提供十分强大的功能.可以通过自带的各种命令小工具cat\grep\cut\awk\tail等等,然后通过管道方式拼接,最后通过shell脚本就可以完成很强大的文本信息搜集与分析功能.话不多说,仅仅把自己会的贡献出来. 2.shell按行读取文件信息我们从文件decoders的11行开始读取每行的字符串信息,并将其保存到shell的变量line中. #!/bin/bash cat decoders|tail -n +11|while read line do echo $line done通过上面的程序,就可以获取文件decoders的每行数据,并将其保存在变量line中,简单的测试一下,果然从11行开始打印. 对于上面的程序增强一下功能,提取第3列的关键字并打印,如012v\4xm这样的关键字.这里就再次将变量的值通过标准输入流送给cut命令,让该命令完成分割提取工作.最后将提取的结果保存在变量line1中 #!/bin/bash cat decoders|tail -n +11|while read line do line1=`echo $line|cut -d " " -f 3` echo $line1 done
通过上面的两个步骤,就提取到了关键字line,那么接下来从文件MAINTAINERS中查找关键字line,并将所在的行打印出来. #!/bin/bash cat decoders|tail -n +11|while read line do line1=`echo $line|cut -d " " -f 3` line2=`grep $line1 MAINTAINERS` echo $line2 done
通过shell的判断语句将非空的结果打印出来
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |