Puncte:-2

Introducerea liniilor goale între secțiunile potrivite

drapel jp

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.

Artur Meinild avatar
drapel vn
Care este întrebarea din nou? Vă rugăm să vă asigurați că întrebarea dvs. este clară și clară.
pLumo avatar
drapel in
Variabilele nu se vor extinde între ghilimele simple.
pLumo avatar
drapel in
Răspunde asta la întrebarea ta? [Cum folosesc variabile într-o comandă sed?](https://askubuntu.com/questions/76808/how-do-i-use-variables-in-a-sed-command)
Puncte:0
drapel ca

Potrivit dvs ultima editare, trebuie doar să aveți o linie goală între diferitele secțiuni de comentarii. Puteți face asta schimbând ultimul sed comanda de la:

sed "/$mdr\|$edr/d"

la:

sed "/$mdr/d; s/$edr//"

Acest lucru schimbă sed comanda de ștergere a ambelor $mdr și $edr linii pentru a șterge doar $mdr linia și înlocuirea $edr linie cu un șir gol, păstrând efectiv linia goală pe care o doriți.

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 `-'.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.