Tôi muốn làm mẫu không tham lam (biểu thức chính quy) phù hợp trong awk
. Đây là một ví dụ:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
Có thể viết một biểu thức chính quy chọn chuỗi ngắn hơn không?
@article{gjn,
thay vì chuỗi dài này?:
@article{gjn, Author = {Grzegorz J. Nalepa},
Tôi muốn nhận được kết quả này:
Author = {Grzegorz J. Nalepa},
Tôi có một ví dụ khác:
tiếng vang " , bài viết {gjn, Tác giả = {Grzegorz J. Nalepa}," | awk '{phụ (/ , [^,] *, /, ""); in} ' ↑ ↑ ^^ ^ ^ ^ ^
Lưu ý rằng tôi đã thay đổi các @
ký tự thành ký tự dấu phẩy ( ,
) ở vị trí đầu tiên của cả chuỗi đầu vào và biểu thức chính quy (và cũng thay đổi .*
thành [^,]*
). Có thể viết một biểu thức chính quy chọn chuỗi ngắn hơn không?
, Author = {Grzegorz J. Nalepa},
thay vì chuỗi dài hơn?:
,article{gjn, Author = {Grzegorz J. Nalepa},
Tôi muốn nhận được kết quả này:
,article{gjn
Author
theo dấu phẩy và khoảng trắng, theo sau là khoảng trắng theo sau=
là khoảng trắng theo{
sau là bất kỳ dấu vết nào}
theo sau}
, mặc dù điều này đòi hỏi (trong số những thứ khác) mà bạn không thể lồng{}
vào bên trong= { ... }
phần đó.