Tôi có chức năng bash sau sử dụng sed
để trích xuất các phần xảy ra giữa ## Chế độ: tổ chức
và ## # Kết thúc tổ chức
, ở đâu #
là nhân vật bình luận. Cuối cùng, tôi xóa ký tự nhận xét và mọi khoảng trắng.
Đây là đầu vào của tôi
mèo /home/flora/docs/recnotes.txt
## Chế độ: tổ chức
# Gán các tham số vị trí của shell hoặc thay đổi giá trị của shell
# tùy chọn. Tùy chọn -- gán các tham số vị trí cho
# đối số của {set}, ngay cả khi một số trong số chúng bắt đầu bằng một tùy chọn
# tiền tố `-'.
## # Kết thúc tổ chức
;; Chế độ: tổ chức
; Gán các tham số vị trí của shell hoặc thay đổi giá trị của shell
; tùy chọn. Tùy chọn -- gán các tham số vị trí cho
; đối số của {set}, ngay cả khi một số trong số chúng bắt đầu bằng một tùy chọn
; tiền tố `-'.
;; # Kết thúc tổ chức
@c Chế độ: org
@c Gán các tham số vị trí của shell hoặc thay đổi giá trị của shell
tùy chọn @c. Tùy chọn -- gán các tham số vị trí cho
@c đối số của {set}, ngay cả khi một số trong số chúng bắt đầu bằng một tùy chọn
tiền tố @c `-'.
@c # Kết thúc tổ chức
Đây là chức năng bash với việc thực hiện trong sed
.
chiếm lấy ()
{
địa phương efile="$1"
địa phương charcl begorg endorg
charcl_ere='^[[:space:]]*([#;!]+|@c|\/\/)[[:space:]]*'
charcl_bre='^[[:space:]]*\([#;!]\+\|@c\|\/\/\)[[:space:]]*'
begorg="${charcl_bre}"'Chế độ: org$'
endorg="${charcl_bre}"'# Kết thúc org$'
mdr='^Chế độ: org$' ; edr='^# Kết thúc tổ chức$'
sed -n "/$begorg/,/$endorg/ s/$charcl_bre//p" "$efile" |
sed "/$mdr\|$edr/d"
}
Ban đầu, tôi có hai lệnh như
begorg='${charcl_bre}Chế độ: org$'
endorg='${charcl_bre}# Kết thúc org$'
không mở rộng biến charcl_bre
.
đầu ra là
Gán các tham số vị trí của shell hoặc thay đổi giá trị của shell
tùy chọn. Tùy chọn -- gán các tham số vị trí cho
đối số của {set}, ngay cả khi một số trong số chúng bắt đầu bằng một tùy chọn
tiền tố `-'.
Gán các tham số vị trí của shell hoặc thay đổi giá trị của shell
tùy chọn. Tùy chọn -- gán các tham số vị trí cho
đối số của {set}, ngay cả khi một số trong số chúng bắt đầu bằng một tùy chọn
tiền tố `-'.
Gán các tham số vị trí của shell hoặc thay đổi giá trị của shell
tùy chọn. Tùy chọn -- gán các tham số vị trí cho
đối số của {set}, ngay cả khi một số trong số chúng bắt đầu bằng một tùy chọn
tiền tố `-'.
Điều tôi muốn làm là có một dòng trống giữa các phần.