我对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
答案 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