我有两个文件可以说... 1) 学生记录有 id、name 和 city 等信息 2) 学生分数有 id、totalmarks、percentage
学生记录(文件)
101 | 尼克| 孟买 102 | 泽尔 | 钦奈 103 | 古拉夫 | 德里
学生成绩(文件)
101 | 80 | 80 102 | 90 | 90 103 | 90 | 90
我想用它的百分比来检索学生姓名等表格中的信息
尼克| 80 泽尔 | 90 古拉夫 | 90
如何使用 awk 命令编写
我有两个文件可以说... 1) 学生记录有 id、name 和 city 等信息 2) 学生分数有 id、totalmarks、percentage
学生记录(文件)
101 | 尼克| 孟买 102 | 泽尔 | 钦奈 103 | 古拉夫 | 德里
学生成绩(文件)
101 | 80 | 80 102 | 90 | 90 103 | 90 | 90
我想用它的百分比来检索学生姓名等表格中的信息
尼克| 80 泽尔 | 90 古拉夫 | 90
如何使用 awk 命令编写
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)