Sử dụng awk
hoặc sed
làm cách nào để chọn các dòng nằm giữa hai mẫu điểm đánh dấu khác nhau? Có thể có nhiều phần được đánh dấu bằng các mẫu này.
Ví dụ: Giả sử tệp chứa:
abc
def1
ghi1
jkl1
mno
abc
def2
ghi2
jkl2
mno
pqr
stu
Và mẫu bắt đầu là abc
và mẫu kết thúc là mno
Vì vậy, tôi cần đầu ra là:
def1
ghi1
jkl1
def2
ghi2
jkl2
Tôi đang sử dụng sed để khớp với mẫu một lần:
sed -e '1,/abc/d' -e '/mno/,$d' <FILE>
Có cách nào trong sed
hoặc awk
thực hiện lặp đi lặp lại cho đến khi kết thúc tệp không?
awk '/abc/{a=1}/mno/{print;a=0}a' file
.