بدون در نظر گرفتن نمایش سطرهای بدون تکرار، اسکریپت زیر تا مرحله اول خواسته هاتون رو انجام میده. میشه برای ادامهی کار(انتخاب بر اساس ستون پنجم) هم یه اسکریپت مجزا نوشت.
#!/usr/bin/bash
awk -O '
{
if (($3, $4) in holder){
#Qablan hamchin sotune 3 va 4 ee dashte am.
if (holder[$3, $4] == 2){
if (($3, $4) in tmpArray){
print tmpArray[$3, $4]
delete tmpArray[$3, $4]
}
if ($2 == 2){
print $0
}
}else{
if ($2 == 2){
holder[$3, $4] = $2
print $0
delete oneHolders
}else{
oneHolders[$3, $4, ++oneCounter[$3, $4]] = $0
}
}
}else{
#Qablan in sotune 3 va 4 ra nadashte am.
holder[$3, $4] = $2
if ($2 == 1){
oneHolders[$3, $4, ++oneCounter[$3, $4]] = $0
}else{
tmpArray[$3, $4] = $0
}
}
}
END {
#printf("In the END section\n")
for (line in oneHolders){
split(line, checkUnique, SUBSEP)
if(checkUnique[3] != 1){
print(oneHolders[line])
}
}
delete holder
delete tmpArray
delete oneHolders
delete oneCounter
}
' "$1" | sort --parallel=4 -nk3,3 -k4,4