我有3個文件,每個文件都有一個表。 文件1:
使用Awk命令過濾來自多個表的數據
RollNo Name
1 Student1
2 Student2
3 Student3
4 Student4
文件2:
CourseId CourseName
CS11 Discrete Mathematics
CS12 Business Communication
MT15 Business Management
BM13 Linux
文件3:
RollNo CourseID Grade
1 CS11 AB
1 CS12 BC
1 BM13 AB
1 MT15 BB
2 CS11 AA
2 MT15 AB
2 BM13 AB
2 CS12 AA
(注:列名即RollNo,名稱,CourseId不存在的文件中)
這是.awk我從源頭髮現這是非常相似,我想要一個腳本文件:
BEGIN{
FS=" "
}
{
if(getline tmp < "file3.txt"){
split(tmp, arr)
if(arr[1]==$1){
#print arr[2],arr[3]
cc[i++]=arr[2]
while(getline tmp2 < "file2.txt"){
split(tmp2, arr2)
if(arr2[1]==arr[2]){
#print arr2[2],arr[3]
cName[j++]=arr2[2]
}
}
close("file2.txt")
grade[k++]=arr[3]
}
}
#print tmp
print "RollNo",$1
print "Name",$2
for(i in cc){
print cc[i],grade[i],cName[i]
}
}
我的輸出是假設是這樣的:
Roll No: 1
Name: Student1
CourseID: CS11, CourseName: Discrete Mathematics, Grade:AB
CourseID: CS12, CourseName: Business Communication, Grade:BC
.....
similarly for Roll No: 2.
我不能得到任何輸出,但一個空殼。 – vishalkin
您正在使用的3個文件的確切名稱是什麼?您是否閱讀並嘗試理解該腳本?我評論過每一行,對你來說不應該太難!注意腳本檢查要讀取的文件,所以如果你的文件沒有命名爲'file1','file2'和'file3',那麼改變腳本來讀取你的文件! –
對不起傢伙...我沒有提到文件擴展,而閱讀文件... 我知道了.... :)謝謝很多親... – vishalkin