ตกลงเนื่องจากเป็นคำถามที่ซับซ้อนฉันจะอธิบายอย่างชัดเจน ฉันได้ไฟล์เนื้อหาที่แสดงด้านล่าง:
$ Cat File1
ABC Cool Lol POP {MNB}
ABC Cool Lol POP {MNB}
ABC Cool Lol POP {MNB}
ABC Cool Lol POP {TBMKF}
ABC Cool Lol POP {YUKER}
ABC Cool Lol POP {EFEFVD}
ผลลัพธ์ที่ฉันต้องการ
-Cool MNB + POP ;
-Cool MNB + POP ;
-Cool MNB + POP ;
-Cool TBMKF + POP ;
-Cool YUKER + POP ;
-Cool EFEFVD +POP ;
ก่อนอื่นฉันพยายามเอาคอลัมน์สุดท้ายออกจากFile1และพิมพ์ออกมาโดย
sed 's/[{}//g' File1 > File3
หลังจากนั้นฉันก็คัดลอกเนื้อหาทั้งหมดของFile1ไปยังใหม่File4
cp File1 File4
หลังจากนั้นฉันจะแทนที่ข้อมูลภายในFile4ด้วยFile3ข้อมูล (หมายถึงข้อมูลที่ไม่มีวงเล็บหนึ่ง " File1คอลัมน์สุดท้ายที่หนึ่ง")
awk 'FNR==NR{a[NR]=$1;next}{$5=a[FNR]}1' File3 File4 >>File5
ผลลัพธ์ควรเป็นเช่นนี้
ABC Cool Lol POP MNB
ABC Cool Lol POP MNB
ABC Cool Lol POP MNB
ABC Cool Lol POP TBMKF
ABC Cool Lol POP YUKER
ABC Cool Lol POP EFEFVD
ในที่สุดฉันก็ลอง
awk -F“ " '{print - $2,$5 +,$4 ";"}‘ File5
แต่ผลลัพธ์ไม่ได้ออกมาตามที่ฉันต้องการเฉพาะข้อมูลที่คล้ายกันของ MNB เท่านั้นที่แสดงรายการทั้งหมดและอื่น ๆ ไม่แสดงขึ้นมา (ไฟล์หนึ่งคอลัมน์ข้อมูลสุดท้าย)
awk --versionผลลัพธ์คืออะไร