ฉันต้องการจะทำรูปแบบไม่โลภ (regular expression) awkการจับคู่ใน นี่คือตัวอย่าง:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
เป็นไปได้ไหมที่จะเขียนนิพจน์ทั่วไปที่เลือกสตริงที่สั้นกว่า?
@article{gjn,
แทนที่จะเป็นสายยาวนี้:
@article{gjn, Author = {Grzegorz J. Nalepa},
ฉันต้องการผลลัพธ์นี้:
Author = {Grzegorz J. Nalepa},
ฉันมีตัวอย่างอื่น:
echo " ,บทความ {gjn, ผู้แต่ง = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] *, /, ""); พิมพ์} '
↑↑ ^^^^^
โปรดทราบว่าฉันเปลี่ยน@อักขระเป็นอักขระจุลภาค ( ,) ในตำแหน่งแรกของทั้งสตริงอินพุตและนิพจน์ทั่วไป (และเปลี่ยน.*เป็น[^,]*) เป็นไปได้ไหมที่จะเขียนนิพจน์ทั่วไปที่เลือกสตริงที่สั้นกว่า?
, Author = {Grzegorz J. Nalepa},
แทนที่จะเป็นสตริงที่ยาวกว่า?:
,article{gjn, Author = {Grzegorz J. Nalepa},
ฉันต้องการผลลัพธ์นี้:
,article{gjn
Authorเครื่องหมายจุลภาคและช่องว่างตามด้วยช่องว่างตามด้วยช่องว่างตามด้วย=ตามด้วยช่องว่างตามด้วย{ไม่ใช่}ตามด้วย}แม้ว่าสิ่งนี้จะต้อง (ในสิ่งอื่น ๆ ) ที่คุณไม่สามารถทำรัง{}ใน= { ... }ส่วน