我有两个文件可以说...... 1)具有身份证,姓名和城市等信息的学生记录 2)学生分数有id,总分,百分比
学生记录(档案)
101 | nik | mumbai 102 | zeel | chennai 103 | gurav | delhi
学生成绩(档案)
101 | 80 | 80 102 | 90 | 90 103 | 90 | 90
我希望检索表格中的信息,例如学生姓名及其百分比
nik | 80 zeel | 90 gurav | 90
如何使用awk命令编写此内容
答案 0 :(得分:1)
awk -F'|' -v OFS="|" 'NR==FNR{a[$1]=$2;next}$1 in a{print a[$1],$3}' studentfile markfile
没有测试,但应该工作。
输出就像:
nik|80
zeel|90
....
修改强>
-F'|' #Field separator
-v OFS="|" #output field separator
'NR==FNR{a[$1]=$2;next} #NR is overall record line number, FNR is record line number from one Input File. see man page for detail. this part was processing the first input file, and save id and name in an array
$1 in a{print a[$1],$3}'#now processing the 2nd input file, the marks. if id in the array, print the value of the array (name), and the mark percentage field ($3)