Tôi đang sử dụng lệnh sau để trích xuất các mô tả từ các bản vá:
sed '
s/Title: \(.*\)/### \1 ###\n\n**File:** FILE_NAME_HERE/
/^diff\|^---/ {
q
}
' "$patch" | egrep -v '^(diff|---)'
Làm thế nào tôi có thể thoát khỏi egrep -v '^(diff|---)'
một phần và chỉ sử dụng sed? Tôi đã thử làm điều này:
/^diff\|^---/ {
d # <-- This is what I added
q
}
Nhưng một khi đạt được "d", "q" sẽ bị bỏ qua và phần còn lại của các dòng trong phần thân của bản vá được in. Đây là một bản vá mẫu:
Title: Font Array Support
Modifies st to support user-defined fallback fonts specified in an array
defined as `static const char *fonts[]`. This change also resolves an issue
where fallback fonts were used in place of default fonts in an inconsistent
manner which caused identical sets of text to sometimes use different fonts. In
the following example, DejaVu Sans Mono is the primary font with two others
specified as fallbacks:
static const char *fonts[] = {
"DejaVu Sans Mono",
"VL Gothic",
"WenQuanYi Micro Hei",
};
diff --git a/st.c b/st.c
index 2594c65..f7973bd 100644
--- a/st.c
+++ b/st.c
@@ -353,10 +353,17 @@ typedef struct {
FcPattern *pattern;
} Font;
Kịch bản sed sẽ trả về mọi thứ phía trên dòng bắt đầu bằng "diff;" đây là những gì đầu ra nên:
Title: Font Array Support
Modifies st to support user-defined fallback fonts specified in an array
defined as `static const char *fonts[]`. This change also resolves an issue
where fallback fonts were used in place of default fonts in an inconsistent
manner which caused identical sets of text to sometimes use different fonts. In
the following example, DejaVu Sans Mono is the primary font with two others
specified as fallbacks:
static const char *fonts[] = {
"DejaVu Sans Mono",
"VL Gothic",
"WenQuanYi Micro Hei",
};