Tôi thấy rất nhiều ví dụ và trang nam về cách thực hiện những việc như tìm kiếm và thay thế bằng sed, awk hoặc gawk.
Nhưng trong trường hợp của tôi, tôi có một biểu thức chính quy mà tôi muốn chạy với một tệp văn bản để trích xuất một giá trị cụ thể. Tôi không muốn thực hiện tìm kiếm và thay thế. Điều này được gọi từ bash. Hãy sử dụng một ví dụ:
Ví dụ về biểu thức chính quy:
.*abc([0-9]+)xyz.*
Tệp đầu vào mẫu:
a
b
c
abc12345xyz
a
b
c
Nghe đơn giản như vậy, tôi không thể tìm ra cách gọi sed / awk / gawk một cách chính xác. Những gì tôi đã hy vọng làm, là từ trong tập lệnh bash của tôi có:
myvalue=$( sed <...something...> input.txt )
Những điều tôi đã thử bao gồm:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing