比较2个文件内容与ShellScript中的特定值

时间:2018-10-03 07:07:36

标签: shell awk sed

我对Shell脚本很陌生,需要帮助 我有2个文件,即

Student.txt
001,彼得,第3类
002,Mohit,class4
等等...

Marks.txt
001,历史,45
001,数学,55
002,计算机,76
002,数学,96
 等等...
我想从Student.txt中读取第一个单词(即卷号),即本例中的001,002,然后在另一个文件中搜索内容(卷号)。Marks.txt第一个单词和第二个单词应为“历史记录”,(条件:$ 1 ==否,&& $ 2 ==历史)

我通过awk cmd尝试并无法提供完整的解决方案

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

1 个答案:

答案 0 :(得分:1)

此命令首先从第二列中具有“历史记录”的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