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
Authortheo 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 đó.