ฉันต้องการจะทำรูปแบบไม่โลภ (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
เครื่องหมายจุลภาคและช่องว่างตามด้วยช่องว่างตามด้วยช่องว่างตามด้วย=
ตามด้วยช่องว่างตามด้วย{
ไม่ใช่}
ตามด้วย}
แม้ว่าสิ่งนี้จะต้อง (ในสิ่งอื่น ๆ ) ที่คุณไม่สามารถทำรัง{}
ใน= { ... }
ส่วน