การใช้ GNU awkซึ่งรองรับlength(array)คุณสมบัติเฉพาะ(และawkการใช้งานบางอย่างซึ่งอาจรองรับ) และไม่จำเป็นหากไฟล์ถูกเรียงลำดับ
gawk 'FNR==NR{seen[$0];next} ($0 in seen){delete seen[$0]};
END{print (!length(seen))?"Matched":"Not Matched"}' file2 file1
นี้คือการอ่านfile2ลงในอาร์เรย์ที่เรียกว่าseenมีคีย์เป็นสายทั้งหมดของfile2
จากนั้นอ่านfile1และสำหรับแต่ละบรรทัดหากจับคู่กับบรรทัดในอาร์เรย์ที่เห็นแล้วลบคีย์นั้น
ในตอนท้ายถ้าอาร์เรย์ว่างเปล่าหมายความว่ามีบรรทัดทั้งหมดในfile2อยู่ในfile1และจะพิมพ์Matchedมิฉะนั้นจะNot Matchedปรากฏขึ้น
เพื่อความเข้ากันได้ในทุกawkการใช้งาน
awk 'FNR==NR{seen[$0];next} ($0 in seen){delete seen[$0]};
END{for(x in seen);print (!x)?"Matched":"Not Matched"}' file2 file1
การละเว้นบรรทัดว่าง / หรือเส้นที่มีช่องว่าง แต่ถ้าในfile2คุณจะต้องเพิ่มNFเงื่อนไขในการNR==FNR && NF {...ที่จะข้ามไปอ่านพวกเขาลงในอาร์เรย์
file2มี 2 บรรทัดAคุณต้องfile1มีอย่างน้อย 2 บรรทัดAหรือไม่