Saya ingin melakukan pencocokan pola non-serakah (ekspresi reguler) awk
. Berikut ini sebuah contoh:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
Apakah mungkin untuk menulis ekspresi reguler yang memilih string yang lebih pendek?
@article{gjn,
bukannya string panjang ini ?:
@article{gjn, Author = {Grzegorz J. Nalepa},
Saya ingin mendapatkan hasil ini:
Author = {Grzegorz J. Nalepa},
Saya punya contoh lain:
gema " , artikel {gjn, Penulis = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] *, /, ""); cetak} ' ↑ ↑ ^^^^^
Perhatikan bahwa saya mengubah @
karakter menjadi koma ( ,
) karakter di posisi pertama dari string input dan ekspresi reguler (dan juga berubah .*
menjadi [^,]*
). Apakah mungkin untuk menulis ekspresi reguler yang memilih string yang lebih pendek?
, Author = {Grzegorz J. Nalepa},
bukannya string yang lebih panjang ?:
,article{gjn, Author = {Grzegorz J. Nalepa},
Saya ingin mendapatkan hasil ini:
,article{gjn
Author
mengikuti koma dan spasi, diikuti oleh spasi putih diikuti oleh=
diikuti oleh spasi putih diikuti oleh{
diikuti oleh non-}
diikuti oleh}
, meskipun ini membutuhkan (antara lain) bahwa Anda tidak bisa bersarang{}
di dalam= { ... }
bagian.