Am următoarea funcție bash care o folosește sed
pentru a extrage secțiuni care apar între ## Mod: org
și ## # Sfârșitul organizației
, Unde #
este caracterul de comentariu. În cele din urmă, elimin caracterul de comentariu și orice spații.
Aceasta este intrarea mea
cat /home/flora/docs/recnotes.txt
## Mod: org
# Atribuie parametrii poziționali ai shell-ului sau modifică valorile shell-ului
# Opțiuni. Opțiunea -- atribuie parametrii de poziție
# argumente ale lui {set}, chiar și atunci când unele dintre ele încep cu o opțiune
# prefix `-'.
## # Sfârșitul organizației
;; Mod: org
; Atribuie parametrii poziționali ai shell-ului sau modifică valorile shell-ului
; Opțiuni. Opțiunea -- atribuie parametrii de poziție
; argumentele lui {set}, chiar și atunci când unele dintre ele încep cu o opțiune
; prefixul `-'.
;; # Sfârșitul organizației
@c Mod: org
@c Atribuie parametrii poziționali ai shell-ului sau modifică valorile shell-ului
@c opțiuni. Opțiunea -- atribuie parametrii de poziție
@c argumente ale lui {set}, chiar și atunci când unele dintre ele încep cu o opțiune
@c prefixul „-”.
@c # Sfârșitul organizației
Iată funcția bash cu implementare în sed
.
captură ()
{
local efile="$1"
local charcl begorg endorg
charcl_ere='^[[:space:]]*([#;!]+|@c|\/\/)[[:space:]]*'
charcl_bre='^[[:space:]]*\([#;!]\+\|@c\|\/\/\)[[:space:]]*'
begorg="${charcl_bre}"'Mod: org$'
endorg="${charcl_bre}"'# Sfârșitul organizației$'
mdr='^Mod: org$' ; edr='^# Sfârșitul org$'
sed -n "/$begorg/,/$endorg/ s/$charcl_bre//p" "$efile" |
sed "/$mdr\|$edr/d"
}
Inițial, aveam cele două comenzi ca
begorg='${charcl_bre}Mod: org$'
endorg='${charcl_bre}# Sfârșitul organizației$'
care nu extindeau variabila charcl_bre
.
Ieșirea este
Atribuie parametrii poziționali ai shell-ului sau modifică valorile shell-ului
Opțiuni. Opțiunea -- atribuie parametrii de poziție
argumentele lui {set}, chiar și atunci când unele dintre ele încep cu o opțiune
prefixul `-'.
Atribuie parametrii poziționali ai shell-ului sau modifică valorile shell-ului
Opțiuni. Opțiunea -- atribuie parametrii de poziție
argumentele lui {set}, chiar și atunci când unele dintre ele încep cu o opțiune
prefixul `-'.
Atribuie parametrii poziționali ai shell-ului sau modifică valorile shell-ului
Opțiuni. Opțiunea -- atribuie parametrii de poziție
argumentele lui {set}, chiar și atunci când unele dintre ele încep cu o opțiune
prefixul `-'.
Ceea ce aș dori să fac este să am o linie goală între secțiuni.