我正在尝试处理学生的反馈文件。
情景:
students_feedback.txt:
288Y的 10 2RZDBPX1000000001dhana 10Q1 15 W4ZEAV18LXNPSPGRTTIDHBN1000000005egw JP2F1164EI1000000002d EU9V的 10 3IXI1000000003dfg1000000001dfdfds XATS的 11 SSSFOO4dhanaUXIBB7TF71000000004adf 10Q1的 15 W4ZEAV18LXNPSPGRTTIDHBN1000000005egw
方法我尝试过:
我想创建一个数组来指定学生ID(因为我可以给出特定学生的反馈)并通过awk&读取文件。提取螺柱ID。我逐行读取后检查stu id对stu id数组创建stu_found数组。
BEGIN {
Studnet_Ids = "10,11,12,13";
n=split(Studnet_Ids,array,",");
count = 0;
delete Stu_Found[0];
}
{
StuId=substr($0,5,2)
n=length(array);
if(length(array) !=0 && (StuId in array)){
for (i=1;i<=n;i++) {
if(array[i] == StuId){
Stu_Found[count++]=StuId;
}
}
}
}
无论我的方法是否正确,还是有更好的方法来完成这种情况,我都被困在这里了?
答案 0 :(得分:1)
awk
救援!
$ awk '!a[substr($0,5,2)]++' file
288Y102RZDBPX1000000001dhana
10Q115W4ZEAV18LXNPSPGRTTIDHBN1000000005egw JP2F1164EI1000000002d
XATS11SSSFOO4dhanaUXIBB7TF71000000004adf
非awk解决方案可以(id&#39; s将在输出中排序)
$ sort -s -k1.5,1.6 file | uniq -s4 -w2
288Y102RZDBPX1000000001dhana
XATS11SSSFOO4dhanaUXIBB7TF71000000004adf
10Q115W4ZEAV18LXNPSPGRTTIDHBN1000000005egw JP2F1164EI1000000002d