ฉันต้องการค้นหาคำหลักที่ใช้ awk แต่ฉันต้องการทำการค้นหาแบบตรงตามตัวพิมพ์ใหญ่ - เล็ก (ไม่ต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก)
ฉันคิดว่าวิธีที่ดีที่สุดคือการใช้ทั้งคำค้นหา ("คำสำคัญ") และบรรทัดเป้าหมายที่ awk อ่านพร้อมกัน จากคำถามนี้ฉันจะใช้toupper
พิมพ์เป็นตัวพิมพ์ใหญ่ทั้งหมดได้อย่างไร แต่ฉันไม่รู้วิธีใช้ในการจับคู่เพราะคำตอบนั้นแสดงการพิมพ์และไม่ปล่อยให้ตัวพิมพ์ใหญ่เป็นตัวแปร
นี่คือตัวอย่างที่ได้รับข้อมูลนี้:
blablabla
&&&Key Word&&&
I want all
these text and numbers 123
and chars !"£$%&
as output
&&&KEY WORD&&&
blablabla
ฉันต้องการผลลัพธ์นี้:
I want all
these text and numbers 123
and chars !"£$%&
as output
นี่คือสิ่งที่ฉันมี แต่ฉันไม่รู้วิธีเพิ่มในtoupper
:
awk "BEGIN {p=0}; /&&&key word&&&/ { p = ! p ; next } ; p { print }" text.txt
awk 'toupper($0)~/&&&KEY WORD&&&/ { p = ! p ; next } ; p;' text.txt
โปรดทราบว่าคุณสามารถลดความซับซ้อนที่ ไม่จำเป็นต้องใช้BEGIN
บล็อกและเนื่องจากการดำเนินการเริ่มต้นคือการพิมพ์p;
ก็เพียงพอแล้ว