将2个文件内容与shell脚本中的特定值进行比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将2个文件内容与shell脚本中的特定值进行比较相关的知识,希望对你有一定的参考价值。

我是shell脚本的新手,需要帮助我有2个文件,即

Student.txt 001,Peter,class3 002,Mohit,class4 等等...

Marks.txt 001,历史,45 001,数学,55 002,电脑,76 002,数学,96 等等... 我想从Student.txt中读取第一个单词(即卷号),即在我的例子中读取001,002,然后在另一个文件中搜索内容(卷号)Marks.txt第一个单词和第二个单词应该是“History”,(条件:$ 1 ==滚动否&& $ 2 ==历史)

我通过awk cmd尝试但无法完成解决方案

awk -F“,”'{print $ 1}'student.txt awk -F“,”'{print $ 1,$ 2}'marks.txt

答案

此命令首先从第二列中具有历史记录的Marks.txt中收集卷号,然后从Student.txt中打印具有此列表中卷号的行:

awk 'BEGIN {FS=", "} FNR==NR{ if ($2=="History"){a[$1];} next} $1 in a' Marks.txt Student.txt

输出:

001, Peter, class3

编辑:有关使用awk:Using AWK to Process Input from Multiple Files处理多个文件的更多信息,请参阅此处

以上是关于将2个文件内容与shell脚本中的特定值进行比较的主要内容,如果未能解决你的问题,请参考以下文章

编写Shell脚本

Shell语法——参数变量,测试与比较

有两个目录,其中的有若干个文件,文件名相同但是内容可能不同。现在需要用shell脚本进行比对。

shell脚本之条件语句

shell脚本基础----变量

Shell脚本之条件语句