ฉันมีไฟล์ข้อความ 2 ไฟล์ อันที่ 1 เป็นเช่นนี้:
DB 41533499 41533500 14
CD 41533500 41533501 3
AR 41533504 41533505 5
DR 41533506 41533507 3
AR 41533508 41533509 1
AR 48743349 48743350 1
และอันที่ 2 มีลักษณะดังนี้:
DB 41533400 41533600
DR 41533300 41533800
AR 41533200 41533800
AR 48743100 48743983
ความแตกต่างระหว่างคอลัมน์ที่ 2 และคอลัมน์ที่ 3 คือ 1 ซึ่งหมายความว่านั่นคือจุด ฉันต้องการสร้างไฟล์ใหม่โดยที่คอลัมน์ที่ 1 อยู่ร่วมกันระหว่าง 2 ไฟล์และช่วงของคอลัมน์ที่ 2 และ 3 ในไฟล์ 2 อยู่ในช่วงของคอลัมน์ที่ 2 และ 3 ใน file2 นี่คือผลลัพธ์ที่คาดหวัง:
DB 41533400 41533600 41533499 41533500 14
DR 41533300 41533800 41533506 41533507 3
AR 41533200 41533800 41533508 41533509 1
AR 48743100 48743983 48743349 48743350 1
ฉันกำลังพยายามทำในบรรทัดคำสั่ง linux และเขียนสิ่งต่อไปนี้ แต่ไม่ได้สิ่งที่ฉันต้องการ:
awk '{print $1 "\t" $2 "\t" $3 "\t" }' file2.txt '{print $1 "\t" $2 "\t" $3 "\t" $4 }' file1.txt > output.txt
คุณรู้วิธีแก้ไขมันไหม?
AR 41533504 41533505 5
จึงควรข้ามไป - person RomanPerekhrest   schedule 14.12.2017AR 41533504 41533505
พอดีกับAR 41533200 41533800
ใน file2 ตามตรรกะที่คุณอธิบาย บางทีอาจมีข้อจำกัดอีกอย่างหนึ่งเช่นเอกลักษณ์? - person karakfa   schedule 14.12.2017